微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WPF:在ViewModel中从ViewModel调用方法

如何解决WPF:在ViewModel中从ViewModel调用方法

| 我在WPF应用程序中使用AvalonDock,并且需要保留用户已设置的AvalonDock的布局(移动,停靠,分离面板)。 该功能在控件本身上(SaveLayout,RestoreLayout)。 正确的方法是什么? 现在,在mainWindowviewmodel处有一个命令,该命令是在创建窗口视图和viewmodel实例时由应用程序创建的。基本上,它使中继命令调用一个匿名方法,该方法调用视图控件上的所需函数。这是可行的,因为应用程序为其创建了窗口和视图模型。 但是,如果某些较低级别的视图和视图模型必须这样做,我将如何处理呢?如果使用此方法,我仍然必须在应用程序级别创建Command,并将其通过viewmodels发送到需要绑定的位置?在其中,我必须先搜索作为视图的usercontrol,然后在其中搜索avalonDock控件,然后在应用程序级别使用该控件,这容易出错。不知何故似乎很脏... 谢谢!     

解决方法

        您可能会引入IView接口,以便ViewModel可以在View上调用方法。这样,ViewModel不需要了解具体的View类,并且仍然可以进行单元测试。 WPF应用程序框架(WAF)的示例应用程序说明了如何实现此目的。     ,        您可以使用解耦消息传递在视图模型之间进行通信 http://www.bradcunningham.net/2009/11/decoupled-viewmodel-messaging-part-1.html     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。