hap*_*rst 5 .net c# wpf datagrid
.Net 4 WPF DataGrid MVVM
用户单击添加按钮触发视图模型上的命令。在 viewmodel 命令执行中,我将一个新对象添加到网格绑定到的视图模型的视图集合中。新行确实出现在我的网格中。但是,我还想将焦点发送到该新行中的第一个可编辑单元格。
我什至“欺骗”了 mvvm,在我的视图模型上添加了一个视图监听的事件,以了解何时关注新行。
我已经搜索过,但没有运气。当我遇到这个时,我充满希望:
这导致
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;
Run Code Online (Sandbox Code Playgroud)
有关 GetCell() 的更多信息,请参阅以下文章。
归档时间: |
|
查看次数: |
7985 次 |
最近记录: |