我从这个术语“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");
}
}
}
感谢
答案 0 :(得分:3)
看这里ComboBox.SelectedValue not updating from binding source
您可以使用SelectedIndex
或SelectedItem
代替
答案 1 :(得分:1)
如果在Code中更改了SelectedValue,则只有在ItemsSource中包含新值时,Control才会更新。因此carModelNames的集合必须包含string.Empty,否则它将不是有效的选择。
答案 2 :(得分:0)
属性carModelNames应该是你绑定到组合框的类型集合。并且必须在setter中使用OnPropertyChange ...并且最好使用seletedItem而不是选择的值..