0

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

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

在 WPF 中,我通常使用 ObservableCollection 完成数据绑定并编辑 xaml。有没有办法像上面那样快速做到这一点?

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

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

2 回答 2

1

你可以这样做:

List<Person> someListOFPersons = new List<Person>();
comboBox.DataContext = someListOfPersons;
comboBox.DisplayMemberPath = "FirstName";

您不会看到集合中的更改。因此,如果一个人被添加到列表中或从列表中删除,组合框将看不到它。

于 2012-06-15T17:45:50.840 回答
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);

With this, when your dataview is updated, the updates will be shown in your ComboBox.

于 2012-06-15T17:53:46.827 回答