我们正在使用WPF,并有一个从DockingLibrary派生的窗口.该窗口有一个网格,里面有多个项目,一个是WPF数据网格.我们正在使用MV-VM模式.创建并显示此窗口时,不会选择此数据网格中的任何行.我们可以通过执行以下操作将行显示为突出显示:
SharedWindow.ShipmentWin.shipmentDataGrid.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)
这会导致数据网格中的第一行显示为突出显示.但是,并没有总是其中之一,这一行不是选中,也没有焦点.我尝试将IsSelected和Focus设置在此行中,如下所示:
SharedWindow.ShipmentWin.ShipVM.IsSelected = true;
bool focused = SharedWindow.ShipmentWin.shipmentDataGrid.Focus();
Run Code Online (Sandbox Code Playgroud)
我是否认为这一切都错了,是否有其他方法选择数据网格中的第一行并将焦点设置为它?通常,在创建数据网格时,在用户鼠标单击所需行之前,不会选择任何行.
任何想法将不胜感激.
谢谢!
看看FocusManager.它允许您通过SetFocusedElement方法将焦点设置为另一个UI元素.此外,它允许您确定应用程序中当前关注的元素,这可以方便调试焦点问题.Snoop也很有用.它显示底部状态栏中当前聚焦的元素.
如果您使用WPF Toolkit中的DataGrid,请准备好找到与焦点处理相关的一些错误.最近有些人已经解决了.
归档时间: |
|
查看次数: |
11881 次 |
最近记录: |