C# 在执行视图模型中的方法之后,如何使视图中的方法执行?

C# 在执行视图模型中的方法之后,如何使视图中的方法执行?,c#,winforms,mvvm,devexpress,C#,Winforms,Mvvm,Devexpress,那么,在方法CreateChildViewModel完成后,如何调用PreviewObject方法呢?首先 这打破了传统 无论如何,您需要保留对视图的引用,或使用委托或操作,这取决于谁负责创建和最初显示视图。然后介绍如何通过将引用动作或委托传递给视图模型来将这一切耦合在一起 然而 我会认真考虑你的设计,决定你的VIEW模型是否真的需要访问后面的视图代码,因为这看起来有点不寻常,并试图把这个责任推回到VIEWMID. 最后 如果这确实是您需要做的,那么它似乎是解耦消息传递或事件聚合器系统的一个很好

那么,在方法CreateChildViewModel完成后,如何调用PreviewObject方法呢?

首先

这打破了传统

无论如何,您需要保留对视图的引用,或使用委托或操作,这取决于谁负责创建和最初显示视图。然后介绍如何通过将引用动作或委托传递给视图模型来将这一切耦合在一起

然而

<>我会认真考虑你的设计,决定你的VIEW模型是否真的需要访问后面的视图代码,因为这看起来有点不寻常,并试图把这个责任推回到VIEWMID. 最后

如果这确实是您需要做的,那么它似乎是解耦消息传递或事件聚合器系统的一个很好的候选者,正如在各种MVVM框架(如MVVMLight)中发现的那样

额外资源

// view model
public void CreateChildViewModel()
{
 //do something
}
//view
_fluent.WithCommand(x => x.CreateChildViewModel()).After(PreviewObject);
private void PreviewObject()
{
 //do somthing
 // this method is not call because method CreateChildViewModel is not bind with any control 
 //in view but it's was called automatically when child view-model is created
 }