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属性,那就是Converterswin,记住ConvertBack方法.
因此,您可以Visibility使用控件绑定VM属性,BooleanToVisibilityConverter即使您visibility通过其他方式更改了控件,VM属性也会更新 ; 通常不需要这就是为什么BooleanToVisibilityConverter被触发器取代的原因.
简而言之 -
Triggers只能执行OneWay操作,而Converters可以执行TwoWay操作