2011-02-28 57 views
3

這裏設置的SelectedValue的組合框是我的XAML的一個片段:問題在XAML

<ComboBox x:Name="cbo1" Width="100" SelectedValue="200"> 
     <ComboBoxItem Name="n1">100</ComboBoxItem> 
     <ComboBoxItem Name="n2">200</ComboBoxItem> 
    </ComboBox> 

爲什麼不這項工作?我運行時未選中'200'。 理想情況下,我正在嘗試執行SelectedValue =「{Binding MyValue}」。

回答

4

在這種情況下,選定的值來自ComboBoxItem類型,而不是您希望的整數或字符串。

那麼你能做些什麼呢?對於組合框存在一個屬性,它定義了所選對象的哪個屬性應該用作值,以及作爲DisplayMember(可視化)的情況下,您必須將SelectedValuePath設置爲「Content」。 (該200是你的情況ComboBoxItem的內容)

例如:

<ComboBox x:Name="cbo1" Width="100" SelectedValue="200" SelectedValuePath="Content"> 
    <ComboBoxItem Name="n1">100</ComboBoxItem> 
    <ComboBoxItem Name="n2">200</ComboBoxItem> 
</ComboBox> 
+0

美麗!作品和感謝的解釋。 – DeeStackOverflow 2011-02-28 19:27:15

0
<ComboBox x:Name="cbo1" Width="100" > 
     <ComboBoxItem Name="n1">100</ComboBoxItem> 
     <ComboBoxItem Name="n2" IsSelected="True">200</ComboBoxItem> 
</ComboBox> 
+0

這並沒有幫助,因爲要選擇的值是在運行時。如前所述,我實際上正在嘗試執行SelectedValue = {Binding MyValue}。 – DeeStackOverflow 2011-02-28 19:19:10

+0

對不起 - 專注於選擇正確的項目。 wonderfix的答案看起來不錯。 – RQDQ 2011-02-28 19:30:11