简单的 WPF + MVVM 绑定

发布于 2024-11-08 01:20:59 字数 391 浏览 0 评论 0原文

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

public MyViewModel ViewModel = new MyViewModel();

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

请帮我。

I have a class named MyWindow the derives from Window. I use the MVVM pattern so in code-behind I have the following field:

public MyViewModel ViewModel = new MyViewModel();

ViewModel contains a collection of Person, and all I'd like to do is to bind a ComboBox to this collection, show Person.Name as the header for each Person.
I would also like to have another field in ViewModel that will be data-bound to the selected item.

Please help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

唔猫 2024-11-15 01:20:59

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

this.DataContext = MyModelView;

然后您可以按如下方式设置 ComboBox:

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

其中 Persons 是人员集合,当前人员是所选人员的属性将受到约束。

Well firstly you have to set the datacontext of your window to the viewmdodel in the constructor if you have not already done so:

this.DataContext = MyModelView;

Then you can set the ComboBox as follows:

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

Where Persons is the Collection of Persons and Current Person is the Property the selected person will be bound to.

死开点丶别碍眼 2024-11-15 01:20:59
  1. 将 modelView 分配给 MyWindow.DataContext 属性。这使得它可用于数据绑定。
  2. 在组合框 xaml 中定义数据绑定,如下所示:


这假设您的 modelView 有一个属性 PersonCollection(它是 Person 对象的集合)、Person 对象上的属性 Name 以及类型 Person 的 modelView 上的属性 SelectedPerson。

  1. Assign the modelView to the MyWindow.DataContext property. This makes it available for data binding.
  2. Define the data binding in the combobox xaml like this:

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

This assumes that your modelView has a property PersonCollection which is a collection of Person objects, a property Name on the Person object, and a property SelectedPerson on the modelView of type Person.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文