正如标题所述......我怎样才能找到不同的视图模型......
我的第一个猜测是搜索它正在使用的用户控件并通过它......但对于必须容易找到的东西来说似乎有很多工作......
您可能需要使用允许您在 VM 之间进行通信的通用消息传递机制 - 例如参见 MVVM Light
您可以使用Messenger Class。
当您想要在其他ViewModel中执行一个Viewmodel中存在的方法时。您可以简单地从ViewModel (您想要访问的)向ViewModel(保存您想要执行的事件)发送一条消息,然后执行该操作事件。
在声明事件的类的构造函数中注册消息。在您想要使用该事件的点从视图模型(您想要访问的)发送消息。
这两个视图模型如何关联?一个是另一个的父母吗?在这种最佳情况下,您可以只在另一个订阅的事件或委托中公开一个事件或委托。
同样,如果它们有一个共同的父级,这可以在父级视图模型中完成。
如果没有关系,如何将所有常见功能放入基本视图模型类中。如果事件或委托在基本视图模型中公开,则扩展它的每个视图模型都可以在内部订阅它。