使用DataTrigger而不是数据绑定更好吗?

时间:2010-11-29 18:51:46

标签: wpf binding

如果我想隐藏(或更改WPF中元素的可见性,颜色等),最好使用DataTrigger还是使用转换器绑定?

听起来有两种方法可以达到同一目标。一个人在另一个人之间何时更好?

2 个答案:

答案 0 :(得分:7)

我可以告诉你我的经历。

对于以下情况,我使用转换器进行数据绑定:

  1. 对于Visibility属性(WPF中有内置转换器)。
  2. 在Silverlight应用程序中(尽管Microsoft.Expression.Interactions库中存在与silverlight兼容的数据触发器,但它们不如WPF触发器那么方便。)
  3. 如果源对象包含许多可能的值。例如,枚举到图像转换器,比5个数据触发器更容易编写5个if-else子句。
  4. Datatriggers:

    1. 如果我想一次更改多个不同的属性(背景,可见度,厚度)。
    2. 对于画笔(使用颜色的十六进制数字在C#代码中创建画笔并不容易。)
    3. 如果我想申请静态资源。
    4. 它们可用于显示动画和运行故事板。
    5. 有时候我更喜欢MVVM方法:我在viewmodel中创建了必要类型的附加属性,这样它们就可以直接绑定而不需要转换。

答案 1 :(得分:0)

简短的答案取决于它。

数据触发器仅针对单个数据源提供相等操作。

如果您需要参数或多值绑定,则需要使用转换器。