何时使用DataTrigger以及何时使用Converter?

时间:2010-08-09 06:05:11

标签: wpf

当我们可以使用DataTrigger以及何时可以使用Converter时,是否存在任何假设或规则?

2 个答案:

答案 0 :(得分:2)

DataTriggers用于根据特定值更改样式。例如,当TextBlock的内容是低于0的数字时,将TextBlock更改为红色。

Converter用于将值转换为其他类型的值。例如,将布尔值转换为可见性枚举值

答案 1 :(得分:1)

DataTrigger只能用于检查特定值 - 它不能用于检查范围。 DataTrigger可以组合用于多个条件(MultiTrigger) - ValueConverter只能将一个值转换为另一个值。 (当然,MultiValueConverter可以采用许多值(并监听所有值的更新 - 但仍然只返回一个值。)

这两个可以结合使用,但是 - 比如说,有一个ValueConverter来检查值是否低于50(返回true)以激活DataTrigger(将它放在DataTrigger的Binding中)。

所以,我的书中没有黄金法则 - 只有可能使其中一个无法使用(或非常非常难以应用)的情况。