WPF中的数据绑定可以简单地使用winforms中的数据视图吗?

时间:2012-06-15 17:40:05

标签: wpf vb.net winforms

简短而简单的问题。在Winforms中,您可以通过以下方式将数据视图绑定到组合框或其他控件:

combobox.DataSource = dataview
combobox.DisplayMember = "Something"

在WPF中,我通常使用ObservableCollection完成数据绑定并对xaml进行编辑。有没有办法快速完成它,如上所述?

编辑: 这似乎是我能想到的最简单/最快的事情,它本身就有什么问题吗?

combobox.ItemSource = dataview
combobox.DisplayMemberPath = "Something"

2 个答案:

答案 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中。