2014-04-25 14 views
1

我不確定發生了什麼問題,但是我無法在對話框中選擇我的文本框的文本。SelectAll不能在對話框中工作WPF

我添加了一個FirstTimeLoadedHandler在我查看裝入的,我選擇文本:

public ParticipantView() 
{ 
    InitializeComponent(); 
    Loaded += FirstTimeLoadedHandler; 
} 

private void FirstTimeLoadedHandler(object sender, RoutedEventArgs e) 
{ 
    SurnameBox.Focus(); 
    Keyboard.Focus(SurnameBox); 
    SurnameBox.SelectAll(); 
} 

但是我的文本框是在鍵盤對焦,但沒有選擇可言。我不確定它爲什麼不起作用。

我認爲這與我的數據綁定有關,但應該在加載之前收到數據或者我錯了嗎?

+0

嘗試通過你的代碼進行調試,在你的處理程序中放置一個斷點並查看你的文本框的內容。如果它爲空,則必須使用另一個事件(如下所示:http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.sourceupdated%28v=vs.110%29.aspx) 。 – Eisenhorn

+0

猜你是對的。 TextBox是空的,因此它將在我的值被分配之前被調用。但是,我不能只在每次更改後重點關注它,因爲那樣會在鍵入時選擇文本... – Frame91

+0

所有代碼都可以在普通的WPF窗口上工作,它必須與您的數據綁定有關 – JMK

回答

2

您的代碼可以很好地處理兩個小的更改。首先很明顯,選擇一個沒有文字的TextBox上的所有內容都不會起作用。其次,如果你在之後專注於SelectAll,那麼你會有更多的運氣。試試這個:

private void FirstTimeLoadedHandler(object sender, RoutedEventArgs e) 
{ 
    SurnameBox.Text = "This text is selected"; 
    SurnameBox.SelectAll(); 
    Keyboard.Focus(SurnameBox); 
}