nia*_*iao 12 .net wpf xaml triggers converter
我想知道你如何决定何时使用converters
以及何时使用triggers
.我更喜欢在GUI上使用触发器来操作(比如显示/隐藏控件,改变它们的外观等).
前段时间我使用了一个BooleanToVisibilityConverter
用于此目的,但现在,我只是不需要它,我做所有与visibility
使用触发器相关的事情,我甚至开始思考" 由MS团队创建一个目的是什么BooleanToVisibilityConverter
?" .通常,当我有可能尝试使用声明方式编写代码时 - 在本例中 - XAML.
你对此有何看法?
akj*_*shi 21
我同意你的观点,我也尝试在XAML中使用声明性代码Triggers
而不是Converters
.
在大多数情况下,触发器可以执行与任何转换器相同的工作,但Converters
可以像pchajer提到的那样具有自定义/业务逻辑.
一个限制Triggers
是您的Setters DataTriggers
只能更改UI元素的属性 ; 所以,你不能用触发器更新你的ViewModels属性,那就是Converters
win,记住ConvertBack
方法.
因此,您可以Visibility
使用控件绑定VM属性,BooleanToVisibilityConverter
即使您visibility
通过其他方式更改了控件,VM属性也会更新 ; 通常不需要这就是为什么BooleanToVisibilityConverter
被触发器取代的原因.
简而言之 -
Triggers
只能执行OneWay
操作,而Converters
可以执行TwoWay
操作