为什么这个明显的bug现在还没有在WPF中得到修复!这让我发疯了。
我知道这个问题已被多次询问过,但我找不到任何解决方案,而且我使用的是“最简单”的绑定:
<mui:DataGridTextColumn x:Name="colDeviceName"
Header="Name"
Binding="{Binding Name,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
Width="Auto"
IsReadOnly="false"
EditingElementStyle="{StaticResource errorStyle255}">
</mui:DataGridTextColumn>
我根本不想输入空白值。我在绑定类中实现了IDataErrorInfo
和INotifyPropertyChanged
,实际上,如果输入空值,则会显示相应的错误Tooltip
,您必须先更正此错误,然后才能提交当前值行。
但是当你纠正错误时,你可以离开这行!相反,错误感叹号仍在那里!
这是一个问题,因为如果Grid
有任何错误,我的保存代码将不允许提交数据:
public static bool DataGridHasErrors(DataGrid grid)
{
bool result = false;
for (int i = 0; i < grid.Items.Count; i++)
{
DataGridRow row = GetRow(grid, i);
if (row != null && Validation.GetHasError(row))
{
result = true;
break;
}
}
return result;
}
我尝试了绑定模式和UpdateSourceTrigger
的各种排列,但是它们都没有满足我的需求(通常绑定的对象没有更新等)。
我的意思是,为什么没有解决这个明显的错误?
欢迎所有/任何建议
由于
我看过这篇文章SO Post WPF DataGrid and Validation Errors not clearing并建议不要使用TwoWay
绑定模式 - 但是这不会失败吗?如果UI没有更新它,我将如何更新和验证绑定类?