我有一个名为MyWindow
的类派生自Window
。我使用MVVM模式,因此在代码隐藏中我有以下字段:
public MyViewModel ViewModel = new MyViewModel();
ViewModel
包含Person
的集合,我想做的就是将ComboBox
绑定到此集合,将Person.Name
作为每个标题的标题Person
。
我还希望在ViewModel
中有另一个字段,它将与所选项目绑定数据。
请帮帮我。
答案 0 :(得分:5)
首先,如果你还没有这样做,你必须将窗口的datacontext设置为构造函数中的viewmdodel:
this.DataContext = MyModelView;
然后您可以按如下方式设置ComboBox:
<ComboBox ItemsSource={Binding Persons} SelectedItem={Binding CurrentPerson,Mode=TwoWay} DisplayMemberPath="Name"/>
如果人员是人员集合,则当前人员是所选人员将被绑定的财产。
答案 1 :(得分:2)
<ComboBox ItemsSource="{Binding PersonCollection}"
DisplayMemberPath="Name"
SelectedValue="{Binding SelectedPerson}" >
</ComboBox>
这假设你的modelView有一个PersonCollection属性,它是Person对象的集合,Person对象上的属性Name,以及Person类型的modelView上的属性SelectedPerson。