我试图选择一个组合框项来设置数据库中保存的值。转换为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