程序更改值时触发验证?
我有一个数据网格,它有一列“状态”。当用户单击一个按钮时,它会启动一个后台工作程序,根据 datagrid 行中的数据进行长时间处理:为行循环,这是一个 ObservableCollection 。对于一行,它将报告处理状态并将其显示在“状态”列中(作为字符串)。有时,“状态”将包含如下文本:
错误:....警告:...
我想根据状态文本更改状态单元格背景,即红色表示错误,灰色表示警告...
我可以通过使用验证来做到这一点吗?我在下面编码。如果我手动更改状态文本,它就像我想要的那样工作。local:StatusValidationRule 检查它是否有错误。但是,这不起作用,因为状态文本由程序更改,这不会触发验证。
有什么建议么?谢谢。
<DataGridTextColumn Header="Status" Width="200" CanUserResize="True">
<DataGridTextColumn.Binding>
<Binding Path="Status" ValidatesOnExceptions="True" ValidatesOnDataErrors="True" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:StatusValidationRule ValidationStep="UpdatedValue"/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap">
</Setter>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="Background"
Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>