如何使用DataTrigger从枚举属性中触发?

7

所以我有这个枚举

public enum Status
{
    Intermediate = 0,
    Valid,
    NotValid
}

我的ViewModel:

public class MyData
{
   private Status _status;

   public Status Status 
   {
       get { return _status; }
       set
       {
           _status= value;
           OnPropertyChanged();

       }
}

我的文本框样式

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Status.Valid}" Value="True"/>
    </MultiDataTrigger.Conditions>
    <Setter Property="Background" Value="LightSeaGreen" />
</MultiDataTrigger>

所以这个 Status 属性正在改变,我验证它变为 Valid,但是我的 TextBoxBackground 颜色仍未改变。 这个 style 是在其他的 ResourceDictionary 文件中定义的。 这个文件的名称是 TextBox.xaml
其他属性都正常工作,我询问的原因是我从未尝试使用 enum 编写 Trigger,所以我不知道如何做。
1个回答

12

试试这个:

<Condition Binding="{Binding Status}" Value="Valid"/>
<Condition Binding="{Binding Status}" Value="{x:Static local:Status.Valid}"/>

...其中local映射到Status的CLR命名空间。

xmlns:local="clr-namespace:WpfApplication1"

1
哪个起作用了? - Richard Garside
中间那个对我有效。 - OMGtechy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接