0

问:如何管理我的 dataGrid 验证规则在更改行/单元格之后而不是之前验证我的输入。

C:我有一个带有自动生成列和验证规则的数据网格:

   <DataGrid x:Name="dataGrid"
                      RowDetailsVisibilityMode="VisibleWhenSelected" 
                      VerticalScrollBarVisibility="Auto"
                      HorizontalScrollBarVisibility="Auto"
                      EnableRowVirtualization="True"
                      AutoGenerateColumns="True"
                      ItemsSource="{Binding}"
                      SelectionMode="Extended">

                      <DataGrid.RowValidationRules>
                        <test:TableValidationRules/>
                      </DataGrid.RowValidationRules>
            </DataGrid>

在用数据库中的数据填充数据网格后,数据网格被绑定到数据表......

        sqlAdapter.Fill(dataTable);
        dataGrid.DataContext = dataTable.DefaultView;

...

当我启动我的程序时,所有数据都按预期可视化,并且在构建它时触发了数据网格的验证。但是,如果我将一些新数据添加到我的 dataGrid 中,例如在一个新行中,验证发生在未更改的数据上,而不考虑我写入某个单元格的数据。

似乎我忘记了一些细节,并且解决方案不远。它是 dataTable 和 DataGrid 之间的绑定问题吗?还是我必须以编程方式触发验证?最好的处理方法是什么?

4

1 回答 1

0

解决方案是使用 ValidationStep 属性:

              <DataGrid.RowValidationRules >
                    <test:TableValidationRules ValidationStep="CommittedValue"/>
              </DataGrid.RowValidationRules>
于 2015-08-05T14:08:00.383 回答