我有一个 Datagrid 我想提供一些数据验证,但我需要避免通常在单元格处于无效状态时发生的锁定机制。有没有办法在不使用网格锁定 ValidatesOnDataErrors 的情况下绑定到模型上的 IDataErrorInfo 错误?
具体来说,我想在不锁定网格的情况下显示错误的工具提示和装饰器。
谢谢!
我有一个 Datagrid 我想提供一些数据验证,但我需要避免通常在单元格处于无效状态时发生的锁定机制。有没有办法在不使用网格锁定 ValidatesOnDataErrors 的情况下绑定到模型上的 IDataErrorInfo 错误?
具体来说,我想在不锁定网格的情况下显示错误的工具提示和装饰器。
谢谢!
事实证明,这可以通过仅在 DataGridTemplateColumn 的 CellTemplate 上使用验证来实现。
如:
<DataGridTemplateColumn Header="Destination Column">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox IsEditable="True"
IsTextSearchCaseSensitive="{Binding ElementName=caseSensitiveSearch, Path=IsChecked}"
ItemsSource="{Binding AllSuggestedNames}"
TextSearch.TextPath="SuggestedName"
Text="{Binding ColumnMapping.DestinationColumnName, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Style="{StaticResource TextBlockValidationStyle}"
Text="{Binding ColumnMapping.DestinationColumnName,
ValidatesOnDataErrors=True,
NotifyOnValidationError=True,
UpdateSourceTrigger=PropertyChanged}"
Validation.ErrorTemplate="{StaticResource validationTemplate}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>