我必须触发一个datatrigger事件并比较两个字段&检查它是否真实&基于它为它设置样式
以下是我的代码段
<DataTrigger Binding="{Binding SKUL.ItemNumber}" Value="{Binding ActiveSKULNavigationItem.Supersession.Source}" >
<Setter Property="Common:ButtonPopup.ButtonContent" >
<Setter.Value >
<Image Source="{StaticResource CommentHighlighted16}" Height="16" />
</Setter.Value>
</Setter>
</DataTrigger>
我想检查SKUL.ItemNumber等于ActiveSKULNavigationItem.Supersession.Source.But上面的代码抛出错误。
如果我硬编码值=“aaa”就行了。
错误:无法在datatrigger类型的value属性上设置绑定。只能在依赖项对象的依赖项属性上设置绑定
我该如何解决呢?
答案 0 :(得分:0)
错误清楚地表明你做错了什么。您无法绑定DataTrigger
的值。
要解决此问题,请将IValueConverter
添加到DataTrigger.Binding
,这会将其转换为bool
值。
代码段:
<DataTrigger Binding="{Binding Converter={StaticResource myConverter}}" Value="True">
Converter(其中MyItem
是绑定对象的类):
class MyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (value as MyItem).SKUL.ItemNumber == (value as MyItem).ActiveSKULNavigationItem.Supersession.Source;
}
}