Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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# 如何获取DataGridEditAction.cancel_C#_Wpf_Silverlight_Events_Datagrid - Fatal编程技术网

C# 如何获取DataGridEditAction.cancel

C# 如何获取DataGridEditAction.cancel,c#,wpf,silverlight,events,datagrid,C#,Wpf,Silverlight,Events,Datagrid,在这里检查datagrid示例 请参阅datagrid部分 它说,如果两次使用escape,它将触发退出一行的编辑。我总是有一个datagrid,用户可以在其中编辑一行,但现在用户无法取消编辑。如何使用cancel属性使该行退出 我的经纪人 void RoutingPolicyGrid_RowEditEnded(object sender, DataGridRowEditEndedEventArgs e) { if (e.EditAction == DataGri

在这里检查datagrid示例 请参阅datagrid部分

它说,如果两次使用escape,它将触发退出一行的编辑。我总是有一个datagrid,用户可以在其中编辑一行,但现在用户无法取消编辑。如何使用cancel属性使该行退出

我的经纪人

    void RoutingPolicyGrid_RowEditEnded(object sender, DataGridRowEditEndedEventArgs e)
    {
        if (e.EditAction == DataGridEditAction.Commit)
        {

        }
        else //DatagridEditAction.Cancel
        {

        }
    }
如果我像下面那样手动执行,datagrid仍然会触发RowEditEnded和commit操作,这意味着它会用下面的代码执行两次

    private void RoutingPolicyGrid_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.Key == Key.Escape)
            this.RoutingPolicyGrid_RowEditEnded(sender, new DataGridRowEditEndedEventArgs(null, DataGridEditAction.Cancel));
    }

通过查看以下链接。必须实现IEditable接口才能还原行的版本并触发取消操作


datagrid为您实现了处理程序,因此我不清楚您想做什么?我正在尝试使用内置机制优雅地退出Datagridrow版本。抱歉,仍然不清楚。如果按esc两次取消编辑,您想优雅地处理什么?我试图通过触发DatagridEditAction.Cancel来离开datagrid的行编辑模式。无论我做什么,我总是以DatagridEditAction.Commit结束。我优雅地处理它的意思是,我希望能够使用内置功能,而不必在用户输入escape键时手动捕捉。谢谢你的回复,希望我能让你更清楚一点。