绑定ComboBox twoway模式不起作用?

时间:2011-06-18 18:59:58

标签: .net wpf combobox binding-mode

我从这个术语“TwoWay”中理解的是,如果一端的任何值发生变化,它应该直接反映到另一端,例如我有这个ComboBox

<ComboBox SelectedValue="{Binding CarModel,Mode=TwoWay,IsAsync=True}" ItemsSource="{Binding carModelNames}" />

现在我希望SelectedValue没有/ null,我只是将代码/ viewModel中的CarModel属性更新为“”,但这不起作用,我在这里遗漏了什么吗?

这是我的财产

public String CarModel
    {
        get
        {
            return _CarModel;
        }
        set
        {
            if (_CarModel != value)
            {
                _CarModel = value;
                OnPropertyChanged("CarModel");
            }

        }
    }

感谢

3 个答案:

答案 0 :(得分:3)

看这里ComboBox.SelectedValue not updating from binding source

您可以使用SelectedIndexSelectedItem代替

答案 1 :(得分:1)

如果在Code中更改了SelectedValue,则只有在ItemsSource中包含新值时,Control才会更新。因此carModelNames的集合必须包含string.Empty,否则它将不是有效的选择。

答案 2 :(得分:0)

属性carModelNames应该是你绑定到组合框的类型集合。并且必须在setter中使用OnPropertyChange ...并且最好使用seletedItem而不是选择的值..