获得焦点时,尝试在对话框的文本框中选择文本

时间:2014-05-01 15:03:51

标签: c# wpf mvvm waf-framework-c#

我正在尝试在对话框中选择整个文本,但我无法这样做。

我有一个类Participant,其中包含一个属性Firstname。当我在参与者中设置参与者时,我正在调用焦点方法。但是,当对话框打开时,它仅处于焦点但未被选中。

这是我的焦点方法:

public void FocusSurname()
{
        SurnameBox.SelectAll();
        SurnameBox.Focus();
        Keyboard.Focus(SurnameBox);
}

在对话框中,我将参与者设置如下:

Participant Participant
    {
        get { return _participant; }
        set
        {
           _participant = value;
           FocusSurname();
        }
 }

我的对话框开源代码非常多:

 public void ShowDialog(object owner)
 {
     Owner = owner as Window;
     ShowDialog();
 }

为什么没有选择文字? :(

即使我在ShowDialog-Method中调用FocursSurname,也没有任何变化。

2 个答案:

答案 0 :(得分:1)

您要完成的是查看相关代码(在我看来)。 mvvm指南或模式使用(或至少我对它的理解)表明你想要使用行为或附加属性。意味着将xaml功能扩展到插件视图相关的行为......

我发现了一个与您的主题相关的stackoverflow问题。看看这是否有帮助......或尝试从该解决方案中衍生出来......

链接:

Initial Focus and Select All behavior

HTH

答案 1 :(得分:0)

将以下事件处理程序方法绑定到文本框的GotFocus事件

private static void SelectText(object sender, RoutedEventArgs e)
{
    var textBox = e.OriginalSource as TextBox;

    Keyboard.Focus(textBox);
    textBox.SelectAll();
}