IfElseActivity

 

IfElseActivity

1.IfElseActivity有两个IfElseBranch子控件,分别作为IfElse的两个分支容器,系统自动添加,

2.其中左边(为真件条)的IfElseBranch容器要设Condition

3.IfElse左边(为真件条)的IfElseBranch容器的Condition有两个条件模式:Code Condition,Declarative Rule Condition

 

Code Condition模式

Code Condition模式,由对e.Result赋不同值决定执行不同的分支

要使用该模式,会在代码中用到 CodeCondition 对象与CodeCondition对象的Condition事件

ifelse1.JPG

None.gif      ' Code Condition模式的判断,由对e.Result赋不同值决定执行不同的分支
ExpandedBlockStart.gifContractedBlock.gif
  Private   Sub ifElse_a_Condition() Sub ifElse_a_Condition(ByVal sender As System.Object, ByVal e As System.Workflow.Activities.ConditionalEventArgs)
InBlock.gif        
'e.Result如果为真,就执行左边(为真件条)的IfElseBranch容器
InBlock.gif
        'e.Result如果为假,就执行右边(为假件条)的IfElseBranch容器
InBlock.gif
        If temp = "456" Then
InBlock.gif            e.Result 
= True
InBlock.gif        
Else
InBlock.gif            e.Result 
= False
InBlock.gif        
End If
ExpandedBlockEnd.gif    
End Sub

None.gif

双击无法进入代码,可手写该过程,

从下拉框绑定时如报错,可在Workflow1.designer.vb中的手写绑定代码
None.gif ' Workflow1.designer.vb中的绑定代码
None.gif
Dim  codecondition1  As  System.Workflow.Activities.CodeCondition  =   New  System.Workflow.Activities.CodeCondition
None.gif
AddHandler  codecondition1.Condition,  AddressOf   Me .ifElse_a_Condition
None.gif
Me .ifElseBranchActivity1.Condition  =  codecondition1
None.gif

 

Declarative Rule Condition模式

Declarative Rule Condition模式:由指定的表达式的值是否符合条件定执行不同的分支


ifelse2.JPG

代码实现

Workflow1.rules

<RuleDefinitions xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow">

     <RuleDefinitions.Conditions>

         <RuleExpressionCondition Name="Condition1">

              <RuleExpressionCondition.Expression>

                   <ns0:CodeBinaryOperatorExpression Operator="ValueEquality" xmlns:ns0="clr-namespace:System.CodeDom;Assembly=System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

                       <ns0:CodeBinaryOperatorExpression.Left>

                            <ns0:CodeFieldReferenceExpression FieldName="temp">

                                 <ns0:CodeFieldReferenceExpression.TargetObject>

                                     <ns0:CodeThisReferenceExpression />

                                 </ns0:CodeFieldReferenceExpression.TargetObject>

                            </ns0:CodeFieldReferenceExpression>

                       </ns0:CodeBinaryOperatorExpression.Left>

                       <ns0:CodeBinaryOperatorExpression.Right>

                            <ns0:CodePrimitiveExpression>

                                 <ns0:CodePrimitiveExpression.Value>

                                     <ns1:String xmlns:ns1="clr-namespace:System;Assembly=mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">123</ns1:String>

                                 </ns0:CodePrimitiveExpression.Value>

                            </ns0:CodePrimitiveExpression>

                       </ns0:CodeBinaryOperatorExpression.Right>

                   </ns0:CodeBinaryOperatorExpression>

              </RuleExpressionCondition.Expression>

         </RuleExpressionCondition>

     </RuleDefinitions.Conditions>

</RuleDefinitions>

 

 

 Dim ruleconditionreference1 As Workflow.Activities.Rules.RuleConditionReference = New .RuleConditionReference

 ruleconditionreference1.ConditionName = "Condition1"

 Me.ifElseBranchActivity3.Condition = ruleconditionreference1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值