0

我在 WPF 中有一个 UserControl,它包含各种控件...最重要的是 DataGrid 控件。DataGrid 控件绑定到一个 Observable Collection 列表。该列表根据用户选择的几个过滤器填充了不同的项目。现在,一旦 DataGrid 显示所有数据。我想在我的用户控件上的第一个(过滤器)组合框上设置焦点。有什么方法可以知道 DataGrid 何时完全加载???是否有任何我可以设置的 DataTrigger 可以触发以通​​知我 Grid 已使用新列表刷新,我可以将 ComboBox 设置为焦点。基本上,当重新填充 DataGrid 中的数据时,我无法将焦点设置到我的 UserControl 上的第一个控件...如果有人知道如何解决此问题,请告诉我!提前致谢。

4

1 回答 1

0

我讨厌在代码后面工作,但有时这是唯一的方法。根据我的说法,这可以通过两种方式完成:

  1. 完成过滤逻辑后,使用 EventAggregator 从 ViewModel 引发事件。在后面的视图代码和处理程序中收听此事件firstCombo.Focus()

  2. 其次有点脏,所以必须有按钮或最后一个控件,然后在列表视图上应用过滤器。在 buttonClickHandler/或最后一个控件的任何事件(如 selectionchange)中直接做firstCombo.Focus(). 在这种情况下,您按下按钮的那一刻焦点将移动到组合。

谢谢

于 2013-08-29T09:52:42.060 回答