Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在WPF中检查RowEditEnding中的调用命令,以确保执行该事件?_C#_Wpf_Events_Event Handling_Wpfdatagrid - Fatal编程技术网

C# 如何在WPF中检查RowEditEnding中的调用命令,以确保执行该事件?

C# 如何在WPF中检查RowEditEnding中的调用命令,以确保执行该事件?,c#,wpf,events,event-handling,wpfdatagrid,C#,Wpf,Events,Event Handling,Wpfdatagrid,我需要在RowEditEnding事件处理程序中运行一些验证要求。但是,在某些情况下,它们不会运行:如果按下删除按钮,如果用户转到详细信息表单处理记录,等等 在尝试验证行中的数据之前,如何检查调用命令以查看是否存在“规则异常”之一 目前,伪代码如下所示: private void resultsGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e) { if (!allFieldsAreValid)

我需要在RowEditEnding事件处理程序中运行一些验证要求。但是,在某些情况下,它们不会运行:如果按下删除按钮,如果用户转到详细信息表单处理记录,等等

在尝试验证行中的数据之前,如何检查调用命令以查看是否存在“规则异常”之一

目前,伪代码如下所示:

private void resultsGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
    if (!allFieldsAreValid)
    {
        e.Cancel = true;
        return;
    }
    return;
}
private void resultsGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
    if ( CommandToDeleteRow || CommandToGoToForm )
        return;
    if (!allFieldsAreValid)
    {
        e.Cancel = true;
        return;
    }
    return;
}
我希望它看起来像这样:

private void resultsGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
    if (!allFieldsAreValid)
    {
        e.Cancel = true;
        return;
    }
    return;
}
private void resultsGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
    if ( CommandToDeleteRow || CommandToGoToForm )
        return;
    if (!allFieldsAreValid)
    {
        e.Cancel = true;
        return;
    }
    return;
}
谢谢

看看DataGrid内部;这将允许您在模型中的某个项目在单元格和行级别发生更改时执行验证。除此之外,您还可以签出,因为它将允许您在模型中实现回滚更改

这将使您不再使用事件处理程序,而是转向MVVM方法;这会让你的生活更轻松