3

在下面的代码中,我试图将组合框的 ItemsSource 和 SelectedValue 绑定到模型上的两个不同属性。TickerList 是一个 Dictionary[string, string>。该列表显示正常,当我进行选择时,SelectedValue 已正确填充。但是,当我将 ViewModel.SelectedTicker 属性设置为字典的值之一时,组合框中的选定项目不会改变。我对这种类型的绑定印象深刻,如果我在模型上设置值,控件将反映该更改。关于我可能做错了什么的任何想法?(注意:我故意显示字典键并将字典的值用作 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);
4

0 回答 0