如何在TextBox不指定名称的情况下将焦点设置为a TextBox?目前我正在做以下事情
<Window FocusManager.FocusedElement="{Binding ElementName=Username}">
<Grid>
<TextBox Text="{Binding Username}" Name="Username" />
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
是否有任何方法可以在不指定名称的情况下执行此操作TextBox.我相信MVVM中有一个Name元素通常意味着糟糕的设计?
jbe*_*jbe 22
我相信MVVM中有一个Name元素通常意味着糟糕的设计?
不,这不对.
MVVM模式不是要从代码隐藏文件中删除所有代码.
它是关于分离关注点和提高可测试性.查看焦点处理等相关代码应保留在View的代码隐藏文件中.但是在View的代码隐藏文件中看到应用程序逻辑或数据库连接管理会很糟糕.
可以在WPF应用程序框架(WAF)项目中找到MVVM示例,其中包含代码隐藏文件中的代码而不违反MVVM模式.
小智 6
简单的方法是在UserControl_Load事件中设置焦点
this.txtBox.Focus();
txtBox.Focusable = true;
Keyboard.Focus(txtBox);
Run Code Online (Sandbox Code Playgroud)
MVVM并不意味着您不能将代码放在代码隐藏文件中.事实上,不要让任何模式限制你找到最好的编码方式.
| 归档时间: |
|
| 查看次数: |
16412 次 |
| 最近记录: |