我对Prism(复合Wpf)完全陌生。我想为我的应用程序创建消息传递模块:主窗口顶部的不可见面板,当我调用ShowMessage(string message)
时出现(例如,在5秒钟后消失)。
我所做的:
创建基础结构项目(仅包含一个接口IUIMessagesService
)
创建模块项目:
项目包含用户控件-它是消息的面板(查看)
项目包含UIMessagesService
类,该类实现了IUIMessagesService
在模块类中,我这样做:public UIMessagesModule(IRegionManager regionManager, IUnityContainer container){ _regionManager = regionManager; _container = container;}
和
public void Initialize()
{
_regionManager.RegisterViewWithRegion("UIMessagesRegion", typeof(UIMessagesView));
_container.RegisterType<IUIMessagesService, UIMessagesService>(new ContainerControlledLifetimeManager());
}
创建外壳项目(引导程序,带有区域e.t.c的外壳视图)
问题:
如何在类
UIMessagesService
中更改视图的属性(在本例中为显示面板的RenderTrasform
)?我可能需要在视图模型中定义theese属性吗?如何更改视图模型属性?如何从应用程序执行模块方法
ShowMessages
? 最佳答案
对于第一个问题,您可以使用事件聚合
第二:
您可以使用ServiceLocator或容器来解析您的类型