WPF复合应用程序 - 选项卡区域 - 视图无法获得焦点

时间:2009-06-05 20:21:39

标签: wpf composite

我刚开始使用WPF的复合应用程序库。在我的shell中,我在tabcontrol中有一个区域,用于显示不同类型的视图。我还有一个工具栏,其中的按钮与命令相连,例如保存。命令绑定在我的视图中,视图具有canExecute和execute方法。

我的想法是,当我点击一个标签时,应该根据视图中的方法启用或禁用我的工具栏按钮。问题是,当我切换标签时,视图没有获得焦点,并且不会调用该视图的canExecute。工具栏按钮保持连接到先前选定视图中的命令,并提醒那样直到我实际点击新视图

我现在很难说如何强制视图获得焦点。我已经尝试查看选项卡的内容,当选项卡SelectionChanged并设置焦点,但它没有区别。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试侦听View.Loaded事件,然后在处理程序中调用View.focus()。在初始化和加载元素之前,Wpf不会接受焦点请求。由于在加载视图之前引发SelectionChanged事件,因此将忽略焦点请求。每次隐藏后显示元素时都会调用加载的事件。


有关焦点的更多信息,请参阅此博客文章:

http://www.julmar.com/blog/mark/PermaLink,guid,6e4769e5-a0b3-47b2-a142-6dfefd0c028e.aspx