我希望可以针对MVVM模式提出一个简单而刻意的问题。
我的MainWindow中只有一个ContentControl控件,用来展示其中的两个视图之一。我想通过按钮在这两个视图之间进行切换。但问题是,这些按钮需要分别放置在每个视图上。例如,View1有一个按钮,View2也有一个按钮。在UI上仅会显示其中一个视图,并通过点击按钮显示另一个视图。然而,为了实现这一点,视图的ViewModel必须知道MainWindow的ViewModel以便更改视图。这似乎是不正确的。
问题可能出在我的MainWindow ViewModel上。其中一个项目是public object View {get;set},这是与MainWindows ContentControl绑定的属性。因此,需要从View的ViewModel中更新此属性。
如果视图更新了MainWindow的ViewModel,是否违反了MVVM模式?
我的MainWindow中只有一个ContentControl控件,用来展示其中的两个视图之一。我想通过按钮在这两个视图之间进行切换。但问题是,这些按钮需要分别放置在每个视图上。例如,View1有一个按钮,View2也有一个按钮。在UI上仅会显示其中一个视图,并通过点击按钮显示另一个视图。然而,为了实现这一点,视图的ViewModel必须知道MainWindow的ViewModel以便更改视图。这似乎是不正确的。
问题可能出在我的MainWindow ViewModel上。其中一个项目是public object View {get;set},这是与MainWindows ContentControl绑定的属性。因此,需要从View的ViewModel中更新此属性。
如果视图更新了MainWindow的ViewModel,是否违反了MVVM模式?