WPF在绑定失败时应用触发器

时间:2010-04-08 00:40:58

标签: wpf data-binding triggers

此问题来自this one ...

我绑定到异构的对象集合,并非所有对象都具有相同的属性集。我在数据网格中这样做。如果绑定失败,我想灰显单元格。如果绑定失败,有没有办法应用触发器?

编辑:下面的答案适用于我的目的,但我跟进了this question,因为我想知道如何做(以非黑客的方式 - 我确实喜欢黑客,但不要我弄错了)

1 个答案:

答案 0 :(得分:4)

据我所知,你不能直接这样做。但是,如果您可以识别永远不会从成功绑定返回的值,则可以创建一个DataTrigger,其绑定具有该值作为其FallbackValue,并触发相同的值:

<!-- Hibble returns only positive values -->
<DataTrigger Binding="{Binding Hibble, FallbackValue=-1}" Value="-1">
  <Setter Property="Background" Value="Red" />
</DataTrigger>

从理论上讲,可以省略{x:Static DependencyProperty.UnsetValue}上的FallbackValue和触发器,这样会更清晰,但这似乎在实践中不起作用。