简短而简单的问题。在Winforms中,您可以通过以下方式将数据视图绑定到组合框或其他控件:
combobox.DataSource = dataview
combobox.DisplayMember = "Something"
在WPF中,我通常使用ObservableCollection完成数据绑定并对xaml进行编辑。有没有办法快速完成它,如上所述?
编辑: 这似乎是我能想到的最简单/最快的事情,它本身就有什么问题吗?
combobox.ItemSource = dataview
combobox.DisplayMemberPath = "Something"
答案 0 :(得分:1)
你可以这样做:
List<Person> someListOFPersons = new List<Person>();
comboBox.DataContext = someListOfPersons;
comboBox.DisplayMemberPath = "FirstName";
您不会在集合中看到更改。因此,如果在列表中添加或删除某个人,组合框将无法看到它。
答案 1 :(得分:1)
您可以通过编程方式设置绑定,但根据我对MVVM模式的理解,最佳做法是在View(xaml)中设置绑定,而不是ViewModel或View代码隐藏。
如何以编程方式设置绑定:
Binding myBinding = new Binding("Name");
myBinding.Source = dataview // data source from your example
combobox.DisplayMemberPath = "Something"
combobox.SetBinding(ComboBox.ItemsSourceProperty, myBinding);
这样,当您的数据视图更新时,更新将显示在您的ComboBox中。