绑定WPF组合框的奇怪行为
本文关键字:WPF 组合 绑定 | 更新日期: 2023-09-27 17:51:11
我绑定到一个组合框的文本属性有问题。似乎它不会绑定,直到我在组合框中选择一些东西。
下面是直接来自测试应用程序的代码:
视图<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");
这是怎么回事?
text属性不是这样工作的。阅读本文档:http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox.text.aspx
就像hameleon86建议的那样,使用selecteditem代替
我想如果你把集合的顺序倒过来可能会起作用因为Text属性默认是集合的第一项
我想你可能想这样做:
PropertyChanged(this, new PropertyChangedEventArgs(" listtitems "));
插入元素后