首页 > 代码库 > MVVM模式下 触发器多条件判断
MVVM模式下 触发器多条件判断
触发的条件一个是textBox1为空另一个是textBox2不为空
多条件判断需要用到触发器MultiDataTrigger
由于在MultiDataTrigger中没有值反转,所以需要在View对应的ViewModel中定义个bool属性IsNull,IsNull用来判断绑定textBox2的值是否为空
IsNull定义如下:
假定绑定在textBox2上的值是info
//判断info是否为空
Public bool IsNull{get{return info.IsNullOrEmpty();}}
定义触发器
1 <MultiDataTrigger> 2 <MultiDataTrigger.Coditions> 3 <Condition Binding="{Binding DataContext.IsNull,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType{X:Type UserControl}}" Value="False"/> 4 <Condition Binding="{Binding BillNo}" Value=""/> 5 </MultiDataTrigger.Conditions> 6 <Setter TargetName="TxtBox" Property="IsEnabled" Value="False"/> 7 8 </MultiDataTrigger> 9 10 <MultiDataTrigger>11 <MultiDataTrigger.Coditions>12 <Condition Binding="{Binding DataContext.IsNull,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType{X:Type UserControl}}" Value="False"/>13 <Condition Binding="{Binding BillNo}" Value="{x:Null}"/>14 </MultiDataTrigger.Conditions>15 <Setter TargetName="TxtBox" Property="IsEnabled" Value="False"/>16 17 </MultiDataTrigger>
代码中的绑定部分,是由于这个触发器是在一个DataGrid里所以这样写。
当info不为空并且BillNo为空的情况下触发TxtBox的IsEnabled属性为false。
MVVM模式下 触发器多条件判断
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。