2014-05-01 36 views
0

我想在对话框中选择整个文本,但我无法这样做。试图在获取焦点时在对话框中的文本框中选择文本

我有一个类Participant它有一个属性Firstname。当我将参与者设置在我的对话框中时,我正在调用Focus-Method。但是,当对话框打开时,它只是处于焦点状态,但未被选中。

这是我的重点,方法:

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(); 
} 

为什么文本未被选中? :(

即使当我打电话FocursSurname在我的ShowDialog法没有正在发生变化。

回答

1

你所要完成的是GotFocus事件查看相关的代码(在我看来)。mvvm指导或模式使用(或者至少是我对它的理解)声明你想使用行为或附属属性来扩展xaml功能来插件查看相关行为...

I发现了一个与您的主题相关的stackoverflow问题。检查一下,这可能有助于...或尝试从解决方案到获得...

链接:

Initial Focus and Select All behavior

HTH

+0

感谢您的回答。事实上,我已经在使用这个问题的行为,但这不能解决我的问题。 - 如果我失去焦点并重新获得焦点,文本框中的文本将按照我希望的那样进行选择。但是我不知道如何在弹出的对话框中获取选定的文本......这里的问题是,我的TextBox将通过PropertyChangedEvent通知,而且这不幸的是,不止一次。首先用默认值,然后用我的期望值 - 应该选择。我无法弄清楚如何解决这:( – Frame91

0

绑定以下事件处理方法文本框

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

    Keyboard.Focus(textBox); 
    textBox.SelectAll(); 
} 
相关问题