我試圖選擇一個組合框項來設置數據庫中保存的值。轉換爲Silverlight中的組合框4
在數據庫中它保存爲「I」或「D」,轉換器返回「直接」或「間接」。
ComboBox具有兩個帶有「直接」和「間接」值的ComboBoxItems。
這是我認爲它會工作代碼:
<ComboBox Name="cbMode"
SelectedValue="{Binding Context.mode, Converter={StaticResource ModeConverter}, Mode=TwoWay}" >
<ComboBoxItem Content="Direct" />
<ComboBoxItem Content="Indirect" />
</ComboBox>
我知道它返回「間接」,但它沒有被選中。
當我嘗試更改組合中的選定項目時,它不起作用,因爲它無法從ComboBoxItem轉換爲字符串,所以我支持這兩個方法都是問題。
我該如何嘗試?我必須使用數字轉換器創建SelectedIndex嗎?
在此先感謝。
您在這裏遇到的問題是您的用戶界面完全是靜態的。如果你需要能夠添加第三個狀態到「模式」會怎麼樣?我建議至少在您的虛擬機中添加一個Key/Value對的ObservableCollection,並按照John Pappa博客鏈接中顯示的方式將ItemsSource綁定到該對象。那麼你不需要一個轉換器,如果你需要進一步將它從VM中分離出來以便更好的重用,你的ObservableCollection可以被移動到一個PickListProvider類型的對象。 – 2011-06-20 20:07:52