WPF DataGrid和验证错误未清除

时间:2017-05-17 15:44:33

标签: wpf binding datagrid

为什么这个明显的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>

我根本不想输入空白值。我在绑定类中实现了IDataErrorInfoINotifyPropertyChanged,实际上,如果输入空值,则会显示相应的错误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没有更新它,我将如何更新和验证绑定类?

0 个答案:

没有答案