在WPF/焦点问题中通过MVVM启动用户控制
我通过WPF中的MVVM将一些UserControl加载到tabcontrol中 在usercontrol的XAML中,我使用FocusManager将焦点设置为文本框,但是这似乎仅在创建usercontrol的第一个实例时起作用 为了进行测试,我向usercontrol添加了一个已加载的事件处理程序——这仅在第一个实例上调用 我正在为用户控件使用数据模板,如下所示:在WPF/焦点问题中通过MVVM启动用户控制,wpf,mvvm,focus,user-controls,Wpf,Mvvm,Focus,User Controls,我通过WPF中的MVVM将一些UserControl加载到tabcontrol中 在usercontrol的XAML中,我使用FocusManager将焦点设置为文本框,但是这似乎仅在创建usercontrol的第一个实例时起作用 为了进行测试,我向usercontrol添加了一个已加载的事件处理程序——这仅在第一个实例上调用 我正在为用户控件使用数据模板,如下所示: <DataTemplate DataType="{x:Type local:UserTypeViewModel}"
<DataTemplate DataType="{x:Type local:UserTypeViewModel}">
<local:UserTypeView />
</DataTemplate>
FocusManager.FocusedElement="{Binding ElementName=txtName}"
此外,我还使用了一个全局事件处理程序(用于textbox GotFocus事件),它使用dispatcher选择所有文本
如果有人对如何使用每个用户控件实现焦点有任何建议,我将非常感激
谢谢,本。记住,只有在以下情况下,视觉元素才能获得焦点:
- 它是可见的(在TabControl中,一次只能看到一个tabitem)
- IsFocusable必须设置为true(UserControls的默认值为false)
- 它已完成加载(当您编写时-在加载的事件中执行此操作))