【发布时间】:2020-10-14 12:20:57
【问题描述】:
我有一个带有 MVVM 和一些文本框的 WPF 应用程序。 在我的 ViewModel 中,我评估文本框(数据库查询)的输入并决定接下来要关注哪个文本框。如果输入不正确,我想输出一个 MessageBox 并将焦点保持在当前 TextBox 上。
我的评估是由“LostFocus”事件触发的,但我不知道如何将焦点设置在 ViewModel 中的特定 TextBox 上。
【问题讨论】:
-
这能回答你的问题吗? Set the focus on a textbox in xaml wpf
-
当你显示一个消息框时,它会成为焦点。所以你不能“继续关注当前的文本框”。一旦用户关闭了消息框,您就需要将焦点重新放在它上面。您可能想重新考虑使用模式对话框并在父视图中使用其他一些机制。像工具提示或不会集中注意力的东西。我通常有一个用户消息文本块,我将所有消息输出到。
-
坦克,我不必显示 MessageBox,但我真的必须知道如何从 ViewModel 将焦点设置在 TextBox 上,这是我主要关心的问题。
-
@manu:那么视图模型如何知道要关注哪个 TextBox?为什么它完全知道任何
TextBox?