【问题标题】:DataGrid Does Not Shows The Row For New ItemsDataGrid 不显示新项目的行
【发布时间】:2011-12-06 08:29:55
【问题描述】:

我正在处理 WPF DataGrid。当我开始编辑新行时,我需要它来显示新项目的空行。我想要这个,因为有时用户只是在数据网格之外单击而没有完成行的信息。

我尝试的一个解决方案是在网格失去焦点时提交行更改,但该事件有点错误,因为它失去了对任何内部控件的焦点。

当数据网格失去焦点时如何提交行更改?

谢谢!

【问题讨论】:

  • 在 WPF 数据网格中,如果我们按 Enter 键,新行会添加到项目源中,不是吗?
  • 是的,但如果我关注网格以外的控件,该行仍处于编辑模式。因此,如果用户想要插入新行,他必须在编辑模式下单击该行,然后按 Enter,然后将注意力集中在新行上。有很多步骤要弄清楚。
  • 诚实地专注于 WPF 数据网格上的提交在某些情况下可能会令人恼火。如果提交前验证出现,它们会变得有点难以管理。我记得回到使用“Enter”方法。这很容易管理。

标签: wpf wpfdatagrid wpftoolkit


【解决方案1】:

我希望下面的代码会有所帮助。

 private void grdEmp_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
    {
        if (!isManualEditCommit)
        {
            isManualEditCommit = true;
            DataGrid grid = (DataGrid)sender;
            grid.CommitEdit(DataGridEditingUnit.Row, true);
            isManualEditCommit = false;
        }
    }

【讨论】:

    【解决方案2】:

    你可以看看this answer。细节有所不同,但基本上,它设置了一种行为以在 DataGrid 失去焦点时提交更改。我可以稍微调整一下以解决我遇到的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 2015-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多