包含ViewModels的WPF MVVM ViewModel未更新



我对WPF和MVVM很陌生,这让我很头疼。由于导航问题,我决定一次显示所有内容。我想创建一个新的ViewModel(MainViewModel(来包含我的另外两个ViewModel(StudentViewModelAddStudentsViewModel(。

MainViewModel包含这样的内容:

private StudentViewModel _studentVM;
private AddStudentsViewModel _addStudentsVM;
public StudentViewModel StudentVM
{
    get { return _studentVM; }
    set
    {
        if (_studentVM != value)
        {
            _studentVM = value;
            NotifyPropertyChanged("StudentVM");
        }
    }
}

(公共AddStudentsViewModel AddStudentsVM也存在,我只是想保持简短(

我已经成功地将StudentVMAddStudentsVM绑定到我的主视图,因为我可以在初始化阶段以编程方式设置值,并且在调试时,我可以看到我的按钮点击被重定向到正确的方法。我甚至似乎成功地将学生添加到了对象中,但我的主视图并没有反映出这些变化。

我在MainViewModel中遗漏了什么吗?或者ViewModel不可能在其中的任何其他ViewModel中看到更改?

如果您的视图通过嵌套导航到属性StudentVM(如StudentVM.Property(而绑定到StudentViewModel内的某个属性,则要将StudentVM.Property上的更改反映到视图中,需要通知视图StudentVM(而不是StudentVM.Property(已更改。

因此,这取决于您如何定义绑定,以及在哪个属性上引发PropertyChanged事件。

包含另外两个视图模型的视图模型。想一想。这不是个好主意。

无论如何,您还必须在包含的视图模型中实现INotifyPropertyChanged。不仅在包含的MainViewModel中。

也许这就是问题所在?

相关内容

  • 没有找到相关文章

最新更新