0

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

这个想法是,当我单击一个选项卡时,我的工具栏按钮应该根据视图中的方法启用或禁用。问题是当我切换选项卡时,视图没有获得焦点,并且该视图的 canExecute 没有被调用。工具栏按钮保持连接到先前选择的视图中的命令,并以这种方式提醒,直到我实际单击新视图

我现在对如何强制视图获得焦点感到困惑。当标签选择和将焦点设置在那里时,我尝试查看选项卡的内容,但它没有差异。有任何想法吗?

4

1 回答 1

0

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


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

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

于 2009-06-05T21:41:05.633 回答