【发布时间】:2010-04-08 00:40:57
【问题描述】:
这个问题来自this one...
我绑定到一个异构的对象集合,并不是所有的对象都具有相同的属性集。我在数据网格中这样做。如果绑定失败,我想使单元格变灰。如果绑定失败,有没有办法应用触发器?
编辑:下面的答案适合我的目的,但我跟进了this question,因为我想知道如何去做(以非黑客方式 - 我确实喜欢黑客,但不要得到我错了)
【问题讨论】:
标签: wpf data-binding triggers
这个问题来自this one...
我绑定到一个异构的对象集合,并不是所有的对象都具有相同的属性集。我在数据网格中这样做。如果绑定失败,我想使单元格变灰。如果绑定失败,有没有办法应用触发器?
编辑:下面的答案适合我的目的,但我跟进了this question,因为我想知道如何去做(以非黑客方式 - 我确实喜欢黑客,但不要得到我错了)
【问题讨论】:
标签: wpf data-binding triggers
据我所知,您不能直接执行此操作。但是,如果您可以确定一个永远不会从成功绑定中返回的值,则可以创建一个 DataTrigger,其绑定将该值作为其 FallbackValue,并在该相同值上触发:
<!-- Hibble returns only positive values -->
<DataTrigger Binding="{Binding Hibble, FallbackValue=-1}" Value="-1">
<Setter Property="Background" Value="Red" />
</DataTrigger>
理论上可能可以省略 FallbackValue 并在{x:Static DependencyProperty.UnsetValue} 上触发,这样会更简洁,但这在实践中似乎行不通。
【讨论】: