0

我无法绑定到组合框的文本属性。在我在组合框中选择某些内容之前,它似乎不会绑定。然后它工作正常。

这是直接来自测试应用程序的代码:

看法

<ComboBox ItemsSource="{Binding ListItems}"
          Text="{Binding Test}" />

视图模型

class ViewModel : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    public ObservableCollection<string> ListItems { get; set; }
    public ViewModel()
    {
        ListItems = new ObservableCollection<string>();
        ListItems.Add("Southwest");
        ListItems.Add("South");
    }

    public string Test
    {
        get { return "South"; }
        set { PropertyChanged(this, new PropertyChangedEventArgs("Test")); }
    }
}

但是,当我颠倒可观察集合项的顺序时,一切正常。

ListItems.Add("South");
ListItems.Add("Southwest");

这里发生了什么?

4

2 回答 2

2

text 属性不能这样工作。阅读本文档:http: //msdn.microsoft.com/en-us/library/system.windows.controls.combobox.text.aspx

就像 hameleon86 所建议的那样,使用 selecteditem 代替。

I think it Works if you reverse the order of your collection maybe because the Text property take the first item of the collection by default

于 2013-01-10T15:58:57.573 回答
0

我想你可能想做:

PropertyChanged(this, new PropertyChangedEventArgs("ListItems"));

插入元素后。

于 2013-01-10T15:19:29.883 回答