我正在使用Windows Presentation Foundation技术和MVVM模式创建应用程序。我在视图模型类之间进行通信时遇到问题。换句话说,我需要将一些属性从一个视图模型类更新到另一个。实际上,我使用包含类的一些视图模型对象的Singleton模式作为属性。显然,这不是一个优雅的解决方案,我不满意。我听说过一些解决这个问题的模式,但我想找到解决问题的最佳方案。
Singleton模式的代码是这样的:
public class Singleton
{
private static Singleton _instance;
public static Singleton GetInstance
{
if (_instance == null)
_instance = new Singleton();
return _instance;
}
public MainViewModel viewModel {get;private set;}
protected Singleton {}
public void SetViewModel(MainViewModel viewModel)
{
this.viewModel = viewModel;
}
public void RefreshPropertiesInViewModel()
{
viewModel.RefreshMethod(); // an example method which refreshing properties
}
}