16得票4回答
为什么我应该使用Prism?

我对制作一个大型的WPF应用程序很感兴趣。有人建议我们使用PRISM,我们正在研究这个框架。我们可能会使用MVVM模式来实现这个应用程序。我看了一些PRISM视频教程,似乎PRISM主要用于向不同的区域注入不同的视图。这是使用PRISM的主要目的吗? 我可以随时使用WPF MasterPag...

14得票4回答
MEF保留非共享的IDisposable部件的引用,不允许它们被垃圾回收。

在我的Prism应用程序中,我遇到了MEF部分生命周期的问题,这导致内存泄漏。 我的应用程序将视图和视图模型导出,并将PartCreationPolicy设置为CreationPolicy.NonShared。视图和视图模型都继承自ViewBase和ViewModelBase,它们都实现了I...

14得票1回答
在MVVM中,一个View是否应该间接绑定到Model中的属性?

假设我有一个视图(View),它的DataContext绑定到一个ViewModel,而且ViewModel公开了一个Model属性。 在MVVM中,将View中的字段绑定到Model中的属性(例如Binding Path=Model.FirstName)是典型的做法吗? Model是否应...

14得票3回答
如何从ViewModel更改WPF控件的可见性

我有一个使用WPF应用程序,尝试实现MVVM模式和Prism 2。我有一个用户控件,已经订阅了从另一个用户控件触发的事件。我想切换订阅控件中几个子元素的可见性。事件已经成功地被触发,我甚至能够成功地将数据绑定到一些元素。如何使用ViewModel绑定Visibility或任何样式属性,并在运行...

14得票2回答
在Composite WPF (Prism)中,IRegion.Add和IRegionManager.RegisterViewWithRegion有什么区别?

在Composite WPF (Prism)中,向IRegionManger集合添加模块时,使用IRegion.Add和IRegionManager.RegisterViewWithRegion有何区别? IRegion.Addpublic void Initialize() { _...

14得票2回答
寻找Prism示例,其中模块将自己加载到菜单中。

有没有人知道使用Prism的WPF代码示例,其中每个模块都在另一个模块中的菜单中注册自己作为菜单项? (我目前有一个应用程序尝试使用EventAggregator完成此操作,因此一个模块侦听其他模块发布的事件,需要将其标题作为菜单项显示在菜单中,但我遇到了加载顺序和线程等问题。我想找到一个使用...

14得票3回答
复合 WPF(Prism)模块资源数据模板

假设我有一个Shell应用程序和几个使用Microsoft CompositeWPF(Prism v2)的独立模块项目... 当接收到命令时,模块会创建一个新的ViewModel,并通过区域管理器将其添加到一个区域中。var viewModel = _container.Resolve&lt...

14得票3回答
BindableBase与INotifyChanged的区别

有人知道BindableBase现在是否仍然可用,或者我们应该坚持使用INotifyChanged事件吗?看起来BindableBase很快就失去了它的光泽。感谢您能提供的任何信息。

14得票2回答
事件聚合器与复合命令

我按照Prism指导文档的要求进行了学习,并且认为我已经掌握了他们大多数的通信方式。 使用DelegateCommand非常直接,因此可以清楚地知道它将被用于连接视图和其模型。 但是,当涉及跨模块通信时,特别是何时使用EventAggregation而不是Composite Command...

14得票3回答
DelegateCommand的CanExecute逻辑

更新:由于关注点转移到了MVVM而不是实际问题,因此我正在更新它。 我在DelegateCommand的CanExecute中遇到了一个问题。在调用RaiseCanExecuteChanged之前,它不会更新,这是期望的行为吗? 我上传了一个简单的示例项目来重现这个问题: http:/...