在下面的代码中,我试图将组合框的ItemsSource和SelectedValue绑定到我的模型上的两个不同属性。 TickerList是一个Dictionary [string,string>。列表显示正常,当我进行选择时,SelectedValue被正确填充。但是,当我将ViewModel.SelectedTicker属性设置为字典的其中一个值时,ComboBox中的所选项目不会更改。我有这种类型的绑定的印象,如果我在模型上设置值,控件将反映该变化。关于我可能做错什么的任何想法? (注意:我故意显示字典键并使用字典的值作为selectedValePath,这也是我在viewmodel.SelectedTicker属性上设置的值......这是设计的。)
//bind to list of TickerList
Binding listBinding = new Binding() { Source = ViewModel.TickerList };
cbPriceSource.DisplayMemberPath = "Key";
cbPriceSource.SelectedValuePath = "Value";
cbPriceSource.SetBinding(ComboBox.ItemsSourceProperty, listBinding);
//bind selection to ViewModel.SelectedTicker
cbPriceSource.DataContext = ViewModel;
Binding selectedItemBinding = new Binding() { Source = ViewModel, Path = new PropertyPath("SelectedTicker"), Mode = BindingMode.TwoWay };
cbPriceSource.SetBinding(ComboBox.SelectedValueProperty, selectedItemBinding);