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”属性的静态值。有没有更优雅的方法可以在不使用转换器的情况下做到这一点,我不是特别喜欢?

【问题讨论】:

我认为您不能在DataTriggerValue 属性上使用绑定或转换器。如果您有多个确定结果的绑定值,则最好使用IMultiValueConverter 并将您需要的值传递给它。也就是说,DataTrigger+Converter 可能是这里最简单的解决方案。 【参考方案1】:

也许更优雅的解决方案是创建一个DataTemplateSelector,然后像这样将它连接到您的列表框 - ItemTemplateSelector="StaticResource MyTemplateSelector"

【讨论】:

这正是我所需要的。谢谢!

以上是关于DataTrigger:“值”属性的复杂条件的主要内容,如果未能解决你的问题,请参考以下文章

WPF之触发器

如何在 DataTrigger Setter 下使用由多个 TextBlock 组成的 WrapPanel

Datatrigger 适当地改变了 TextBlock 的初始属性,但不是在对象改变之后

WPF ItemsControl DataTrigger EnterActions动画未启动

使用DataTrigger来代替Triggerr

绑定属性上的 DataTrigger