如何从Enum属性使用DataTrigger?

时间:2018-02-22 15:15:38

标签: wpf enums binding textbox

所以我有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();

       }
}

我的TextBox 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

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

1 个答案:

答案 0 :(得分:3)

试试这个:

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

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

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

xmlns:local="clr-namespace:WpfApplication1"