私は WPF と MVVM Light を初めて使用します。助けていただければ幸いです :-)
次のことを行うために、MVVM Light を使用してコンボボックスを実装する方法を知りたいです。
1) コンボボックスでアイテムを選択する
2) 選択した値に基づいて、GUI の他のテキスト フィールドを変更します。
ご協力ありがとうございました。
ロマン
私は WPF と MVVM Light を初めて使用します。助けていただければ幸いです :-)
次のことを行うために、MVVM Light を使用してコンボボックスを実装する方法を知りたいです。
1) コンボボックスでアイテムを選択する
2) 選択した値に基づいて、GUI の他のテキスト フィールドを変更します。
ご協力ありがとうございました。
ロマン
上手:
意見:
<ComboBox ItemsSource="{Binding SourceData}" SelectedItem="{Binding SelectedSourceData,Mode=TwoWay}"/>
<TextBlock Text="{Binding SelectedDataInTextFormat}"/>
ViewModel:
public class ViewModel:ViewModelBase
{
public ObservableCollection<Foo> SourceData{get;set;}
public Foo SelectedSourceData
{
get{return _selectedFoo;}
set{_selectedFoo=value;
RaisePropertyChanged("SelectedSourceData");
SelectedDataInTextFormat=Foo.ToString();
}
public string SelectedDataInTextFormat
{
get{return _selectedDataInTextFormat;}
set{_selectedDataInTextFormat=value;
RaisePropertyChanged("SelectedDataInTextFormat");
}
}
基本的に、ビューモデルがコンボボックスから更新された選択されたアイテムを確実に受信できるようにするには、SelectedItemバインディングがMode=TwoWayに設定されていることを確認してください。ビューモデルで変更が発生したときにビューモデルからビューにデータを確実にプッシュするには、ビューで更新するプロパティのRaisePropertyChangedヘルパークラスを呼び出すようにしてください。