以编程方式绑定ComboBox ItemSsource和Selected Value

时间:2012-05-24 02:57:15

标签: c# wpf xaml

在下面的代码中,我试图将组合框的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);

0 个答案:

没有答案