1

MVVMメソッドを使用してXAMLでコンボをDataBindingするのに問題があります。

コンボのソースを次のようにコードビハインドに設定しました。

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

また、コンボのXAMLは次のとおりです。

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

コンボはテキストコントロールを備えたページの一部であり、それらはすべてDataBindで正常に機能します。ページDataContextは、AgeIDと呼ばれるプロパティを持つViewModel(carViewModel)に設定されます。

したがって、アイテムをコンボするときに変更する場合は、carViewModel.AgeIDを選択した値で更新する必要があります。

コンボからアイテムを選択するたびに、何も更新されません。私は何が間違っているのですか?

前もって感謝します

XAML、C#4.5を使用しており、VisualStudio2012でWindowsストアアプリを作成しています。

4

1 に答える 1

2

MVVMパターンに従う場合は、ComboBoxのデータも使用できるようにして、carViewModelそれにバインドします。

言い換えると:

<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();
}
于 2013-02-27T13:42:37.790 に答える