我在WPF中有一个UserControl,它包含各种控件......最重要的是DataGrid控件。 DataGrid控件绑定到Observable Collection列表。此列表根据用户选择的几个过滤器填充不同的项目。现在,一旦DataGrid显示所有数据。我想在我的usercontrol上将Focus设置为第一个(Filters)组合框。有没有办法知道DataGrid何时完全加载???有没有我可以设置的DataTrigger,我可以触发通知我Grid使用新列表刷新,我可以将ComboBox设置为焦点。基本上,当重新填充DataGrid中的数据时,我无法将焦点设置到UserControl上的第一个控件上...如果有人知道如何解决此问题,请告诉我! 提前谢谢。
答案 0 :(得分:0)
我讨厌在代码背后工作,但有时这只是方法。根据我的说法,这可以通过两种方式完成:
一旦完成过滤逻辑,就使用EventAggregator从ViewModel中引发事件。在处理程序后面和处理程序中的视图代码中监听此事件firstCombo.Focus()
第二个有点脏,所以必须有按钮或最后一个控件,然后在列表视图上应用过滤器。在buttonClickHandler /或最后一个控件的任何事件(如selectionchange)中直接执行firstCombo.Focus()
。在这种情况下,按下按钮焦点的那一刻将移动到组合。
由于