c# - WPF 数据触发器在使用(密封)后,无法修改
问题描述
我不知道出了什么问题,以及我应该如何解决错误。奇怪的是,数据触发器工作正常。
<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 和错误状态是 XAML 中引用的枚举值:
<machineControl:MachineControllerState x:Key="ErrorState">Error</machineControl:MachineControllerState>
<machineControl:MachineControllerState x:Key="ProductionState">Production</machineControl:MachineControllerState>
对视图模型的状态绑定引用是支持 IPropertyChanged 的“普通”属性(来自 mvvm 灯库)
public MachineControllerState State
{
get => state;
set { Set(() => State, ref state, value); }
}
visual studio 在错误列表中显示错误:
数据触发器在使用(密封)后,无法修改
更新:需要明确的是,解决方案编译得很好,运行时一切都按预期工作。
解决方案
推荐阅读
- ios - 为什么附加函数不接受相同类型的数据?
- java - 为什么java流跳过方法强制执行其他操作
- c - 为什么在不使用 srand() 设置种子的情况下使用 rand() 一些数字会发生变化?
- mysql - 我需要创建一个查询,从我创建的 Defined Schema 表中选择具有最不同客户 ID 的 5 个州
- r - kableExtra 中的度数符号
- java - myRectangle.calculateArea(); 返回错误“包 myRectangle 不存在”
- sql-server - Spring Boot - 数据库服务器重启后Tomcat jdbc连接池不恢复
- python - 用熊猫中B列中的前一行值填充A列中的行值
- c# - 为什么泛型参数需要在转换为特定类型之前转换为对象?
- java - X-definition 是否拥有类似于 XSLT 中的 xsl:value-of 的指令?