如何在wpf中的datatrigger中为数据属性添加数据绑定

时间:2014-05-30 10:43:10

标签: wpf wpfdatagrid

我必须触发一个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属性上设置绑定。只能在依赖项对象的依赖项属性上设置绑定

我该如何解决呢?

1 个答案:

答案 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;
    }
}