此问题来自this one ...
我绑定到异构的对象集合,并非所有对象都具有相同的属性集。我在数据网格中这样做。如果绑定失败,我想灰显单元格。如果绑定失败,有没有办法应用触发器?
编辑:下面的答案适用于我的目的,但我跟进了this question,因为我想知道如何做(以非黑客的方式 - 我确实喜欢黑客,但不要我弄错了)答案 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和触发器,这样会更清晰,但这似乎在实践中不起作用。