绑定ComboBox的双向模式无法正常工作?

3
我理解的"TwoWay"这个术语是指,如果一端的任何值发生改变,它应该直接反映到另一端,例如我有这个ComboBox。
<ComboBox SelectedValue="{Binding CarModel,Mode=TwoWay,IsAsync=True}" ItemsSource="{Binding carModelNames}" />

现在我想让SelectedValue为空/无效,所以我在代码/视图模型中更新了CarModel属性为"",但这并没有起作用,我是否漏掉了什么?

以下是我的属性:

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

        }
    }

谢谢


CarModel的类型是什么? - Navid Rahmani
3个回答

4

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

0

属性carModelNames应该是绑定到下拉框的集合类型。在setter中必须使用OnPropertyChange。最好使用selectedItem而不是selectedValue。


carModelNames 是一个 ObservableCollection<String>,我将它更改为 SelectedItem,请查看我对第一篇帖子的编辑以查看我绑定到的属性。 - Musaab
@Musab:你的属性名称是GlassType,而在XAML中给出的选择值属性是CarModel,应该改为GlassType。 - Syeda
是的,我刚刚复制了错误的属性,马上就会修复,这可能被视为打字错误。 - Musaab
不好意思,我必须更改我的策略,但是我必须告诉你,这些4.0 ComboBox存在严重问题和许多漏洞。 - Musaab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接