简单的 WPF + MVVM 绑定

Posted

技术标签:

【中文标题】简单的 WPF + MVVM 绑定【英文标题】:Simple WPF + MVVM binding 【发布时间】:2011-08-28 13:51:42 【问题描述】:

我有一个名为MyWindow 的类,它派生自Window。我使用 MVVM 模式,所以在代码隐藏中我有以下字段:

public MyViewModel ViewModel = new MyViewModel();

ViewModel 包含Person 的集合,我想做的就是将ComboBox 绑定到此集合,将Person.Name 显示为每个Person 的标题。 我还想在ViewModel 中有另一个字段,它将数据绑定到所选项目。

请帮帮我。

【问题讨论】:

看看他的链接***.com/questions/561166/… 【参考方案1】:

首先你必须在构造函数中将窗口的数据上下文设置为 viewmdodel,如果你还没有这样做的话:

this.DataContext = MyModelView;

那么你可以如下设置ComboBox:

<ComboBox ItemsSource=Binding Persons SelectedItem=Binding CurrentPerson,Mode=TwoWay DisplayMemberPath="Name"/>

其中 Persons 是 Person 的集合,Current Person 是所选人员将绑定到的属性。

【讨论】:

【参考方案2】:
    将模型视图分配给 MyWindow.DataContext 属性。这使其可用于数据绑定。 在组合框 xaml 中定义数据绑定,如下所示:

<ComboBox ItemsSource="Binding PersonCollection" DisplayMemberPath="Name" SelectedValue="Binding SelectedPerson" > </ComboBox>

这假定您的 modelView 有一个属性 PersonCollection,它是一个 Person 对象的集合,一个属性 Name 位于 Person 对象上,一个属性 SelectedPerson 位于 modelView 上的 Person 类型。

【讨论】:

以上是关于简单的 WPF + MVVM 绑定的主要内容,如果未能解决你的问题,请参考以下文章

WPF:将 ContextMenu 绑定到 MVVM 命令

无法使用 MVVM 将 WPF ChartPlotter 绑定到视图

按钮上的绑定命令不起作用wpf mvvm

MVVM设计模式和在WPF中的实现 事件绑定

WPF MVVM 绑定错误

WPF MVVM--数据绑定