gpt4 book ai didi

c# - 如何将单元格集中在 WPF DataGrid 中的新行

转载 作者:行者123 更新时间:2023-11-30 12:50:18 26 4
gpt4 key购买 nike

.Net 4 WPF 数据网格 MVVM

用户单击添加按钮,触发 View 模型上的命令。在 viewmodel 命令执行中,我将一个新对象添加到网格绑定(bind)到的 viewmodel 的 viewcollection 中。新行确实出现在我的网格中。但是,我还想将焦点发送到该新行中的第一个可编辑单元格。

我什至“欺骗”了 mvvm,在我的 View 模型上添加了一个 View 监听的事件,以了解何时关注新行。

我已经搜索过了,但没有成功。当我遇到这个时,我满怀希望:

Datagrid Set focus on newly added row

导致

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/63974f4f-d9ee-45af-8499-42f29cbc22ae

但是其他人报告但没有人回答的问题是如何处理网格的虚拟化行为。新添加的行尚未创建。因此 GetCells 调用经常失败。如果需要 ScrollIntoView,那么它更有可能失败。

我已经连接了大量事件,包括 LoadingRow 和 RequestBringIntoView,但都没有成功。根据我挂接的事件,我设法获得了对单元格的引用。但随后我收到错误消息“内容生成正在进行时无法调用 StartAt”。但是我检查了 ItemContainerGenerator 的状态,当我调用单元格的 BeginEdit 时它是 ContainersGenerated。

最佳答案

这是一种以编程方式将焦点设置到特定单元格的方法:

DataGridCell cell = GetCell(rowIndex, colIndex);
cell.Focus;

请看下面article有关 GetCell() 的更多信息。

关于c# - 如何将单元格集中在 WPF DataGrid 中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472130/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com