DataTrigger:“值”属性的复杂条件
Posted
技术标签:
【中文标题】DataTrigger:“值”属性的复杂条件【英文标题】:DataTrigger: complex condition for "Value" property 【发布时间】:2014-04-27 13:07:26 【问题描述】:我有一个存储 LogEvents 的 ListBox。 LogEvent 类包含一个名为“Event”的字符串属性。我需要根据该属性的内容应用特定样式。但是,条件不是基于静态值,而是基于 Event.Contains("blabla") 这样的条件。
我认为最简单的方法是在要应用的样式上使用 DataTriggers 和一个 ValueConverter,我将在其中应用条件并将结果转换为 DataTrigger 的“Value”属性的静态值。有没有更优雅的方法可以在不使用转换器的情况下做到这一点,我不是特别喜欢?
【问题讨论】:
我认为您不能在DataTrigger
的Value
属性上使用绑定或转换器。如果您有多个确定结果的绑定值,则最好使用IMultiValueConverter
并将您需要的值传递给它。也就是说,DataTrigger+Converter 可能是这里最简单的解决方案。
【参考方案1】:
也许更优雅的解决方案是创建一个DataTemplateSelector
,然后像这样将它连接到您的列表框 - ItemTemplateSelector="StaticResource MyTemplateSelector"
【讨论】:
这正是我所需要的。谢谢!以上是关于DataTrigger:“值”属性的复杂条件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DataTrigger Setter 下使用由多个 TextBlock 组成的 WrapPanel
Datatrigger 适当地改变了 TextBlock 的初始属性,但不是在对象改变之后