【发布时间】:2010-11-13 18:54:58
【问题描述】:
我有一个视图,它下面有一个 TextBox 和一对 Buttons。当窗口加载时,我希望 TextBox 获得焦点。
如果我不使用 MVVM,我只会在 Loaded 事件中调用 TextBox.Focus()。但是,我的 ViewModel 不知道我的视图,那么如果不将代码放入我的视图的代码隐藏中,我该如何实现呢?
编辑: 阅读答案后,我决定将此代码放在视图 xaml 中
<DockPanel FocusManager.FocusedElement="{Binding ElementName=MessageTextBox}">
<TextBox Name="MessageTextBox" Text="{Binding Message}"/>
</DockPanel>
如果这不是初始页面焦点,我可能会推荐 Jon Galloway 的答案,因为它可以从 ViewModel 控制。
【问题讨论】: