所以我有这个 Enum :
Enum
public enum Status { Intermediate = 0, Valid, NotValid }
我的 ViewModel :
ViewModel
public class MyData { private Status _status; public Status Status { get { return _status; } set { _status= value; OnPropertyChanged(); } }
我的文本框 Style :
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 .
Status
Valid
TextBox
Background
style
ResourceDictionary
TextBox.xaml
其他属性工作正常,我问的原因是我从不尝试写 Trigger 具有 enum 所以我甚至不知道该怎么做。
Trigger
enum
尝试以下操作:
<Condition Binding="{Binding Status}" Value="Valid"/>
或
<Condition Binding="{Binding Status}" Value="{x:Static local:Status.Valid}"/>
...哪里 local 映射到的CLR命名空间 Status .
local
xmlns:local="clr-namespace:WpfApplication1"