我不知道哪里出了问题以及如何解决错误。奇怪的是,数据触发器工作正常。
<Style TargetType="Border">
<Setter Property="Background" Value="{StaticResource HeaderBackgroundBrush}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding State}" Value="{StaticResource ErrorState}">
<Setter Property="Background" Value="OrangeRed"/>
</DataTrigger>
<DataTrigger Binding="{Binding State}" Value="{StaticResource ProductionState}">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
</Style.Triggers>
</Style>
ProductionState和Error状态是XAML中引用的枚举值:
<machineControl:MachineControllerState x:Key="ErrorState">Error</machineControl:MachineControllerState>
<machineControl:MachineControllerState x:Key="ProductionState">Production</machineControl:MachineControllerState>
状态绑定引用了视图模型,该视图模型是支持IPropertyChanged的“常规”属性(来自mvvm light lib)
public MachineControllerState State
{
get => state;
set { Set(() => State, ref state, value); }
}
visual studio在错误列表中显示错误:
使用(密封)数据触发器后,将无法对其进行修改
更新:为清楚起见,解决方案可以很好地编译,并且运行时一切正常。
答案 0 :(得分:1)
您可以直接从背后的代码中引用您的枚举。像这样:
{x:Static namespacename:EnumName.EnumValue}