在我的主窗口中,我有几个用户控件。一个用于菜单,另一个具有可变内容,具体取决于菜单选项。用MVVM处理这个问题的好方法是什么?两个用户控件都应该有自己的视图模型吗?但是,如何从菜单视图模型中获取信息到内容视图模型?或者我应该只为整个窗口使用一个视图模型?
这导致了一个更普遍的问题:如果我在程序的几个地方使用相同的信息,我该如何处理?两个单独的视图如何访问同一个模型实例?我需要将该模型设为静态吗?
答案 0 :(得分:-2)
两个用户控件是否都有自己的视图模型?
除非有问题的控件是非常由进程驱动的控件,否则最好让控件完全脱离其声明的dependency properties,而不是单独的VM。
我的程序中的几个地方的相同信息,我该如何处理?
不要过度思考它,创建一个VM,初始化并将其作为静态放在应用程序上,然后从需要它的其他VM访问它。
然后,代码中的任何地方都可以从全局Application.Current Property (System.Windows)获取正在运行的应用程序,这将具有将保存共享VM的静态VM属性。