我刚开始使用 WPF,并尝试以 MVVM 方式做事(在这篇精彩的文章之后)。
我有一个所有视图模型都需要与之交互的中央管理器类。我使用单例实现了这个,所以我有我的单例类:
public class FakeManager
{
private FakeManager() {}
static FakeManager instance;
public static FakeManager Instance
{
get { return instance ?? (instance = new FakeManager()); }
}
...
}
在我的视图模型中,我像这样与之交互:
public ICommand TriggerChannelChange
{
get
{
return new RelayCommand(() => FakeManager.Instance.SetupChangeRequest(_hardwareItem), () => true);
}
}
我的问题是 - 有没有更好的方法?我知道 WPF 中通常用于在 ViewModel 之间发送消息的事件调解器模式,这在这里会更好吗?我想我所做的事情的问题是我与 FakeManager 紧密耦合,而且感觉有点笨拙。
谢谢