【发布时间】:2018-09-24 19:22:06
【问题描述】:
希望你一切都好!
正如您在短视频(49 秒)中看到的那样,当我更改数据网格中的值并单击更新按钮时,datagrid.CurrentItem 没有更改的值,但是当我第二次更新它时我首先在数据网格行之外单击,然后单击它起作用的更新按钮......我尝试了一个可观察的集合(一位同事建议,但我以前从未与他们合作过,据我所知,它没有任何区别。收藏甚至没有更新。)
感谢您抽出宝贵时间提供帮助!
【问题讨论】:
希望你一切都好!
正如您在短视频(49 秒)中看到的那样,当我更改数据网格中的值并单击更新按钮时,datagrid.CurrentItem 没有更改的值,但是当我第二次更新它时我首先在数据网格行之外单击,然后单击它起作用的更新按钮......我尝试了一个可观察的集合(一位同事建议,但我以前从未与他们合作过,据我所知,它没有任何区别。收藏甚至没有更新。)
感谢您抽出宝贵时间提供帮助!
【问题讨论】:
经典的“编辑模式”问题。在第一次拍摄中,单元格处于“编辑模式”,尚未将值提交给行。在第二次拍摄中,您单击关闭,允许单元格的编辑器验证和提交。这是唯一的区别。
因此,如果您希望能够支持第一种行为,则需要在按钮单击处理程序中添加一行以验证该行。
可能是这样的:
rowBeingEdited.EndEdit();
我认为ObservableCollection 不会解决任何问题,因为这不是数据存储问题,而是编辑器没有意识到您已完成编辑的问题。
【讨论】:
<DataGridCheckBoxColumn Binding="{Binding EmpStatus, UpdateSourceTrigger=LostFocus}" ClipboardContentBinding="{x:Null}" Header="Active" > UpdateSourceTrigger 完美!