私はWPFとMVVMの新機能で、頭痛の原因となっています。ナビゲーションに関する問題のため、私はすべてのコンテンツを一度に見えるようにすることにしました。私は私の2つの他のViewModels(StudentViewModel
とAddStudentsViewModel
)を含む新しいViewModel(MainViewModel
)を作成すると思った。WPF MVVM ViewModelにViewModelsが更新されていない
MainViewModel
はこのようなものが含まれています
private StudentViewModel _studentVM;
private AddStudentsViewModel _addStudentsVM;
public StudentViewModel StudentVM
{
get { return _studentVM; }
set
{
if (_studentVM != value)
{
_studentVM = value;
NotifyPropertyChanged("StudentVM");
}
}
}
を(公共AddStudentsViewModel
AddStudentsVM
が同様に存在している、私はちょうどこの短いを維持しようとしている)私は私のメインビューにStudentVM
とAddStudentsVM
を成功裏にバインドされています初期化段階やデバッグ時にプログラムで値を設定できるので、ボタンのクリックが正しい方法にリダイレクトされていることがわかります。私の主なビューはこれらの変更を反映していないが、私は正常にオブジェクトに学生を追加しているようだ。
MainViewModel
に何かがありますか?あるいは、ViewModelがその中の他のViewModelの変更を見ることができないのですか?
あなたの投稿は、ビューコードの一部を追加すると、まだ短くなります。 – tgpdyk
子ビューモデルで 'NotifyPropertyChanged()'を呼び出すメソッドを公開する必要があります。その後、メソッドでは、プロパティ名に空の文字列を使用するだけで、そのビューモデルからのビュー内のすべてのバインディングを更新することができます。 –
質問にさらに情報を追加する必要があります。あなたはセッターと呼んでいるプロパティはどれですか?ビューはどのようにdatacontextを参照していますか? xamlのバインディングはどのように見えますか?あなたは何を期待していますか、実際に何を得ていますか?この情報を提供すれば、より具体的な回答が得られるはずです。 –