触发的条件一个是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。

转载于:https://www.cnblogs.com/shuqiangji/p/3951538.html

MVVM模式下 触发器多条件判断相关推荐

  1. oracle触发器判断空值,oracle触发器加条件判断、dblink

    --新增基站同步给电池组信息 create or replace trigger a_b_test after insert or update or delete on BJLT.BASESTATI ...

  2. WPF MVVM模式下的无阻塞刷新

    MVVM模式下的无阻塞刷新的两种方法: //传统模式下的无刷新调用(主线程开新线程,新线程又调用主线程来更新UI) //第1步先在线程内部计算出需要绑定的数据 //第2步然后再使用Invoke/Beg ...

  3. MVVM模式下 DataTemplate 中控件的绑定

    今天给ListBox中通过DataTemplate生成的Button绑定命令时,一开始Button始终找不到绑定的命令.现找到了正确的绑定方式,特来记录一下. 先上个正确的示例: <ListBo ...

  4. wpf mvvm模式下CommandParameter传递多参

    wpf mvvm模式下CommandParameter传递多参 原文:wpf mvvm模式下CommandParameter传递多参 CommandParameter一般只允许设置一次,所以如果要传递 ...

  5. MVVM模式下实现拖拽

    MVVM模式下实现拖拽 原文:MVVM模式下实现拖拽 在文章开始之前先看一看效果图 我们可以拖拽一个"游戏"给ListBox,并且ListBox也能接受拖拽过来的数据, 但是我们不 ...

  6. C# WPF MVVM模式下在主窗体显示子窗体并获取结果

    01 - 前言 在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2();f2.Show(); 或者 Form2 f2 = new ...

  7. WPF随笔(十四)--如何在MVVM模式下关闭窗口

    离上一篇WPF随笔有多久,再度编码WPF项目就有多久.机缘巧合又接下了一个开发WPF桌面程序的任务,又有机会详细研究之前一直忽略的细节. 今天就来谈谈如何在MVVM模式下关闭窗口. 什么?关闭窗口还要 ...

  8. 在MVVM模式下,ListBox的Command绑定

    最近在学习MVVM模式,我想将ListBox的ItemTemplate中的按钮的Click事件改为用DelegateCommand实现,发现无从下手了: View的内容: <Grid x:Nam ...

  9. Windows Phone中使用Local DataBase与ISolateStorage—在MVVM模式下(—)

    像我们知道的一样,Windows Phone支持ISolateStorage,Mango中还新增了使用Linq的SQL CE作为本地数据库.下面我们就用MVVMLight来模拟个消息发送和查看消息历史 ...

最新文章

  1. centos6.5安装docker
  2. C# 图片盖章功能实现,支持拖拽-旋转-放缩-保存
  3. HtmlAgilityPack.dll的使用 获取HTMLid
  4. 如何保障大数据平台的安全性
  5. JDK中IdentityHashMap使用详解
  6. linux文件管理器thunar,文件管理器:Nautilus,Thunar,PCManFM,Konqueror,Dolphin,Krusader
  7. mysql 加权_数据库 – MySQL中的加权平均计算?
  8. VBScript编程教程 [上]
  9. 简单三步搭建电影网站 :排除MacCMS10登录故障 3-3
  10. 阿里云OSS浏览图片报403错误的解决方法
  11. 服务评价器连接计算机后无法启动,四键评价器服务端+客户端(附驱动)
  12. windows Mac 虚拟机显示模糊的问题
  13. PrimeNG p-Table 自定义shift多选功能
  14. 用计算机找终身伴侣,五个经典问题决定你是否找到终身伴侣
  15. 花呗上征信,一文看懂征信所有问题
  16. ifft matlab报错,傅立叶逆变换ifft之后出现虚数
  17. Adobe Acrobat DC无需注册登陆版
  18. ensp配置ACL访问控制列表
  19. C语言的内部函数与外部函数
  20. c语言找出最大的偶数,查找最大值和最小值为偶数和奇数

热门文章

  1. c++ 调用python_闲话python 48: C/C++扩展Python与Swig工具
  2. 计算机网络—局域网的基本概念和体系结构
  3. UnityShader9.1:光照基础实例
  4. SourcesTree使用手册3:文件贮藏与删除
  5. jQuery Mobile中面板panel的data-*选项
  6. 查看Ubuntu内核和版本的两条命令以及LTS的含义
  7. 论计算机网络的发展及运用,试论计算机网络发展及其应用研究
  8. Android现学现用第十二天
  9. 使用ConnectivityManager 判断网络是否连接
  10. js中arguments的用法