我有两个观点,例如'A'.Xaml和'B'.Xaml。在A.Xaml中我有一个文本框和B.Xaml我有一个按钮,点击'B'视图中的按钮,焦点应该设置在'A'.Xaml(View)中的控件(textBox)上。如何实现这一点。我尝试了很多方法,如焦点行为,Focuselement,Focusable等,我看到的主要问题是如何在不同视图中设置焦点控制,当在不同视图中执行操作时?请回复。提前谢谢 克里希纳
答案 0 :(得分:1)
您需要在A
视图中以某种方式引用B
视图。然后,您只需在Button
B
上使用某个活动
private void Button_Click(object sender, EventArgs e)
{
windowA.txtSomeTextBox.Focus();
}
类似的东西。我实际上并不知道你给控件命名了什么,所以这些部分可能是错误的(因为我猜对了)。
请注意,这只是一种方法。还有很多其他方法可以做到这一点,例如......如果使用Prism框架,可以使用EventAggregator
在两个不相关的视图之间发布事件,或者从绑定{{1的视图模型发布事件的Button
,订阅者(视图)捕获该事件并执行它需要做的事情。等等。
答案 1 :(得分:0)
尝试类似:
Application.Current.Dispatcher.Invoke(() =>
{
txtSomeTextBox.Focus();
});
您可能还想尝试Application.Current.MainWindow
访问A.xaml
。