WPF-xaml:如何使用自动生成的列验证DataGrid中的单元格



如果值无效,如何在自动生成的DataGrid(从DataTable(中添加单元格验证并将单元格设置为红色?

这是我的DataGrid:

<DataGrid Grid.Row="2"
Margin="5"
Background="Transparent"
MaxHeight="300"
MaxWidth="500"
ScrollViewer.CanContentScroll="True"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ItemsSource="{Binding DataTable}"
HeadersVisibility="None"
CellStyle="{StaticResource tableCellTheme}"
CanUserAddRows="False">

我还添加了

<DataGrid.RowValidationRules>
<validation:DataGridValidation ValidationStep="UpdatedValue" />
</DataGrid.RowValidationRules>

但我不想评估整行,更重要的是,如果返回false,我不知道如何将有问题的单元格设置为红色。。。谢谢你的帮助!

您必须处理DataGrid.AutoGeneratingColumn事件,获取对列绑定的引用,然后启用绑定验证并将ValidationRule附加到它:

主窗口.xaml

<DataGrid AutoGeneratingColumn="EnableCellValidation_OnAutoGeneratingColumn" />

主窗口.xaml.cs

private void EnableCellValidation_OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.Column is DataGridBoundColumn column)
{
var columnBinding = column.Binding as Binding;
columnBinding.ValidatesOnDataErrors = true;
columnBinding.ValidationRules.Add(new DataGridValidation());
}
}

相关内容

  • 没有找到相关文章

最新更新