组合不更新使用MVVM和XAML

本文关键字:MVVM XAML 更新 组合 | 更新日期: 2023-09-27 18:01:27

我在使用MVVM方法在XAML中绑定组合时遇到麻烦。

我在后面的代码中设置了组合的源代码,如下所示:

AgesViewModel agesViewModel = new AgesViewModel();
comboAge.SelectedValuePath = "AgeID";
comboAge.DisplayMemberPath = "Age";
comboAge.ItemsSource = agesViewModel.GetAges(); 

组合的XAML是:

<ComboBox x:Name="comboAge"
          SelectedValue="{Binding AgeID}" />

组合是带有文本控件的页面的一部分,它们都很好。页面DataContext被设置为一个ViewModel (carViewModel),它有一个名为AgeID的属性。

所以当组合项目改变时,我想要carViewModel。使用所选值更新AgeID

每当我从组合中选择一个项目时,任何内容都不会更新。我做错了什么?

Thanks in advance

我正在使用XAML, c# 4.5,并在Visual Studio 2012中编写windows商店应用程序。

组合不更新使用MVVM和XAML

如果你想遵循MVVM模式,在你的carViewModel中也有ComboBox的数据,并将绑定到

换句话说:

<ComboBox x:Name="comboAge" ItemsSource="{Binding MyAgeList}" SelectedValue="{Binding AgeID}" />

当改变ComboBox中的值时,这也将更新AgeID属性。

假设AgeID是int(当然,它可以是任何你想要的),那么MyAgeList应该在carViewModel中这样定义:

public List<int> MyAgeList {get; set;}
// Constructor
public CarViewModel()
{
    MyAgeList = new AgesViewModel().GetAges();
}