WPF DataTrigger - 自己的枚举在XAML中返回null

时间:2017-04-05 21:14:19

标签: c# wpf properties triggers datatrigger

我有这段代码:

的.xaml:

<DataTrigger Binding="{Binding Path=TypeItem}" Value="{x:Static local:CListBoxItem+ETypeItem.File}">
    ...
</DataTrigger>

的.cs:

public CListBoxItem(ETypeItem _type)
{
    this.TypeItem = _type;
    InitializeComponent();
}

...

public enum ETypeItem { File,  Directory }

...

public static readonly DependencyProperty TypeItemProperty =
        DependencyProperty.Register("TypeItem", typeof(ETypeItem), typeof(CListBoxItem), new PropertyMetadata(ETypeItem.Directory));
public ETypeItem TypeItem
{
    get { return (ETypeItem) GetValue(TypeItemProperty); }
    set { SetValue(TypeItemProperty, value); }
}

当我运行app时,我的风格不起作用。当我使用时:

<DataTrigger Binding="{Binding Path=TypeItem}" Value="{x:Null}">
    ...
</DataTrigger>

然后工作..如何使用自己的样式加载TypeItem?

1 个答案:

答案 0 :(得分:0)

如果HTML 5类派生自CListBoxItemListBoxItem,请尝试Control而不是Trigger(以及静态值DataTrigger)。 DataTrigger在DataContext中搜索属性,而不在对象本身中搜索。