【发布时间】:2017-08-08 01:46:58
【问题描述】:
我正在努力弄清楚如何检查一个字符串是否包含某些字符/单词,并使数据触发器在此基础上触发。
在下面的示例中,我希望数据触发器在值中有颜色时关闭,之后发生的事情无关紧要。第一个触发器,如果值包含“RED”,无论是 RED Apple 、RED car、RED little ball 等,都应该触发。
<DataTrigger Binding="{Binding Name}" Value="RED Apple" >
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding Name}" Value="YELLOW Lemon" >
<Setter Property="Foreground" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding Name}" Value="GREEN Pear" >
<Setter Property="Foreground" Value="Green" />
</DataTrigger>
我怎样才能做到这一点
【问题讨论】:
-
听起来像是 ValueConverter 或 VM 的工作(如果做 MVVM)。好处是您也可以对其进行单元测试。
-
您无法在纯 XAML 中实现这种逻辑,因为 XAML 是一种 标记 语言,没有定义“包含”方法或“LIKE”运算符。
标签: c# wpf xaml datatrigger