WPF焦点行为问题

时间:2012-03-30 21:01:19

标签: wpf

我有两个观点,例如'A'.Xaml和'B'.Xaml。在A.Xaml中我有一个文本框和B.Xaml我有一个按钮,点击'B'视图中的按钮,焦点应该设置在'A'.Xaml(View)中的控件(textBox)上。如何实现这一点。我尝试了很多方法,如焦点行为,Focuselement,Focusable等,我看到的主要问题是如何在不同视图中设置焦点控制,当在不同视图中执行操作时?请回复。提前谢谢 克里希纳

2 个答案:

答案 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