代码之家  ›  专栏  ›  技术社区  ›  falukky

如何从枚举属性使用DataTrigger?

  •  5
  • falukky  · 技术社区  · 6 年前

    所以我有这个 Enum :

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

    我的 ViewModel :

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

    我的文本框 Style :

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

    所以这个 Status 属性正在更改,我验证它是否变为 Valid 但还是我的 TextBox Background 颜色不变。 这 style 在其他中定义 ResourceDictionary 文件 此文件的名称为 TextBox.xaml .

    其他属性工作正常,我问的原因是我从不尝试写 Trigger 具有 enum 所以我甚至不知道该怎么做。

    1 回复  |  直到 5 年前
        1
  •  10
  •   mm8    6 年前

    尝试以下操作:

    <Condition Binding="{Binding Status}" Value="Valid"/>
    

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

    ...哪里 local 映射到的CLR命名空间 Status .

    xmlns:local="clr-namespace:WpfApplication1"