2010-07-02 19 views

回答

11

您可以通過使用可以訪問組合框的文本框:

var edit = (TextBox)myCombo.Template.FindName("PART_EditableTextBox", myCombo); 

然後你就可以訪問該SelectedText財產TextBox:

var selectedText = edit.SelectedText; 
+1

謝謝。它的工作完美 – 02Anant 2010-07-02 22:32:56

+1

這隻適用於你的ComboBox已經顯示(即它是從它的ControlTemplate生成的),所以你不能做類似於創建一個ComboBox並立即專注於它的TextBox – hillin 2016-04-19 10:04:59

1

因爲WPF是「看不見的」,所以你可以用任何你想要的方式顯示你的組合框項。可能有也可能沒有文本項目。

MyCombo.SelectedText沒有任何意義,如果你是,例如,在那裏顯示圖標。

你想要的是ComboBox.SelectedItem然後訪問你的對象。例如,如果您使用的是「People」對象的備份列表.... MyComboBox.SelectedItem.PersonName

通常,SelectedItem將數據綁定到您的對象模型或其他控件。

+0

我在上面的帖子中得到了答案。我需要ComboBox中的SelectedText進一步處理它們,當ComboBox處於Edit模式時。 – 02Anant 2010-07-02 22:32:25

0

沒有任何屬性被稱爲selectedText,但您可以通過ComboBox.SelectedValue.ToString()方法實現該屬性。這是因爲組合框的值默認爲Object類型,所以我們必須適當地對它進行類型轉換。

+1

這不完全正確。如果您使用的是自定義項目模板,那麼您的代碼將與渲染的字符串不匹配。理想情況下,您應該如此,例如,可以將Employee對象放在列表中,而不是一堆自定義生成的字符串。 – Rich 2012-06-11 20:24:35

0

使用此:

ComboBoxItem Item = (ComboBoxItem) YourComboBoxName.SelectedValue; 

那麼這個:

Console.WriteLine(Item.Content); 
0

爲什麼不試試:

string selectedtext= Combobox.Text; 

這對我的作品。