绑定WPF组合框的奇怪行为

时间:2013-01-10 15:13:06

标签: c# wpf binding

我无法绑定到组合框的text属性。在我选择组合框中的东西之前,它似乎没有绑定。然后它工作正常。

以下是直接来自测试应用的代码:

查看

<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");

这里发生了什么?

2 个答案:

答案 0 :(得分:2)

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

像hameleon86所建议的那样使用selecteditem。

我认为如果你颠倒你的集合的顺序可能是有效的,因为Text属性默认采用集合的第一项

答案 1 :(得分:0)

我想你可能会这样做:

PropertyChanged(this,new PropertyChangedEventArgs(“ListItems”));

插入元素后。