在我的Silverlight应用程序中,我有一个绑定到ICommand的按钮,它可以将一些数据发布到app服务。
完成后,我想让Command触发对视图的回调,让视图知道特定的Command已经完成(我希望视图关闭)。
有没有办法将回调操作传递给DelegateCommand
我还能如何通知视图ViewModel已完成?
发布于 2011-05-22 22:42:03
您可以使用几种不同的方法来实现这一点。一种是注入特定于视图的服务,该服务将在用户界面层上执行操作。视图模型将调用注入服务上的特定方法。here就是一个这样的例子。
如果您不想将特定于视图的服务注入到视图模型中,那么您可以在视图模型上公开一个事件,比如CloseWindow。此事件需要在您的view.xaml.cs文件中订阅,并且您可以通过事件处理程序方法关闭视图页面。
希望这能有所帮助。
发布于 2011-05-23 04:37:29
从ViewModel到视图的任何通信都应该通过消息传递完成(这是一种“松散耦合的事件”机制)。因此,我认为一种很好的方法是从ViewModel向视图发送一条消息(您可以使用MVVM Light中的Messenger类),该视图将自动关闭。不需要回调。
希望这能有所帮助;)
https://stackoverflow.com/questions/6083304
复制相似问题