我有一个数据网格,其中包含一些项目和验证规则,用于检查网格中的项目是否正确。
还有一个关闭按钮,问题是当你点击它时验证器正在检查添加的值是否正确,如果没有它提示错误但我只是想关闭窗口并跳过验证数据。
原因是当您单击取消按钮时,您也会失去焦点,从而触发验证
代码应该更好地解释它:
<DataGrid Name="MyGrid" Loaded="GetSth" ItemsSource="{Binding}" AutoGenerateColumns="False" >
<DataGrid.RowValidationRules>
<configuration:SomeCoolValidationRule ValidationStep="UpdatedValue"/>
</DataGrid.RowValidationRules>
<DataGrid.Columns>
<!-- some columns -->
</DataGrid.Columns>
<Button Grid.Row="1" Content="Close" VerticalAlignment="Bottom" Click="CloseClick"/>
</DataGrid>
代码背后:
<!-- Code behind -->
private void CloseClick(object sender, RoutedEventArgs e)
{
<!-- When clicked i just want window to close, not to check validator rules -->
Close();
}
答案 0 :(得分:0)
解决方案是将按钮上的focusable属性设置为false。
这样,单击关闭按钮并且验证器未启动时,您不会更改datagrid itemsSource。