如何从ViewModel关闭View?
我有一个WPF窗口,它定义了多个Regions并用作Shell来托管我的应用程序的视图.我希望View能够从Region中删除自己,或者从标签容器中关闭它.如何从ViewModel完成此行为.
这实际上取决于您的应用程序架构,但这是我如何使用Prism进行的.
首先,我想说,这是确定有你的VM引用视图一样长,因为它不是一个具体的实现来看,即通过接口引用.
我使用依赖注入将View和ViewModel结合在一起,这与在StockTraderRI中完成的方式非常相似.所以我有一个IView和一个IViewModel.IViewModel有一个名为"View"的IView类型.
从代码层(对我来说,通常是控制器...请参阅StockTraderRI)与您的区域一起使用,添加机制以从区域中删除您的视图.
例如:
myRegion.Remove(myIViewModel.View);
Run Code Online (Sandbox Code Playgroud)
如果区域由控制器处理,您可能希望在VM上放置一个简单事件,以便在VM想要"关闭"时通知.如果您希望使用弱事件模型,也可以尝试使用IEventAggregator.如果在VM中处理该区域,只需在那里添加该代码即可.
归档时间: |
|
查看次数: |
5634 次 |
最近记录: |