2014-05-01 76 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(); 
} 
相關問題