13得票2回答
如何在WPF PRISM/MVVM应用程序中避免内存泄漏的最佳方法?

我有一个基于PRISM的WPF应用程序,采用MVVM模式。 我注意到有时我的视图模型、视图以及与它们相关的所有内容会在它们预期寿命之后一直存在。 其中一个泄漏涉及订阅属于注入服务的集合上的CollectionChanged,另一个涉及未调用DispatcherTimer的Stop方法,还有...

13得票2回答
无法在两个.NET Standard项目中合并NuGet包的传递依赖版本

将 EF Core 添加到 NET Standard 项目中会引入与其他项目中 NuGet 包不兼容的传递依赖项版本 我有一个包含多个 .NET Standard 2.0 项目的解决方案。 项目 A 使用 Google.Protobuf (3.11.2) NuGet 包,该包具有以下依赖关...

12得票1回答
如何使用Moq模拟ILogger / ILoggerService

我正在为我的视图模型类编写一些单元测试。这个类的构造函数是通过ILoggerService注入的。这个接口定义了一个GetLog方法,返回一个ILogger。例如下面这样的代码,其中this表示一个实现ILoggable接口的类:protected ViewModelBase(ILoggerS...

12得票1回答
棱镜程序集引用失败:System.Windows.Interactivity

我有一个C#/WPF Prism应用程序(v4.0),它在加载/解析Prism库附带的System.Windows.Interactivity dll时经常出现问题。我已经连续工作了三天,试图调试/解决这个问题。我对.Net程序集解析有了很多了解,但是到目前为止没有运气解决我的问题,所以我想向...

12得票2回答
从 Prism 应用程序中引用正确的 System.Windows.Interactivity dll

我正在构建一个WPF Prism应用程序。我希望对控件添加EventTriggers,以便可以在底层视图模型上调用命令。但是,我好像无法引用正确的DLL文件使项目运行。目前,我从C:\Program Files (x86)\Microsoft SDKs\Expression\Blend\.NE...

12得票2回答
为什么在MVVM中要在ViewModel和View上实现接口?

我对MVVM模式还比较陌生,请谅解。我看到在WPF + MVVM + Prism中,所有的视图都有一个顶层接口IView。然后各自模块的视图都有一个特定于视图的接口,例如IViewA、IViewB等,这些接口实现了IView接口。甚至ViewModel也有一个顶层接口IViewModel,而后...

12得票2回答
在 Prism EventAggregator 中发布不带 PayLoad 的事件?

为什么我们不能发布没有有效载荷的事件。 _eventAggregator.GetEvent<SelectFolderEvent>().Publish(new SelectFolderEventCriteria() { }); 现在,我不需要传递任何有效负载。但是EventAg...

12得票2回答
当命令 CanExecute 为 false 时,按钮没有变为禁用状态。

我有一个非常简单的窗口,里面有一个按钮,与一个带有命令的ViewModel相关联。 如果MyCommand.CanExecute()为false,我期望该按钮被禁用。但是似乎WPF只会在窗口第一次绘制时设置IsEnabled属性。任何后续操作都不会影响按钮的可见状态。我正在使用Prism中的...

12得票3回答
WPF、Prism v2中模态对话框的区域,以及在代码后台添加区域

我有一个复合型 WPF 应用程序,在我的其中一个模块中,我想制作一个向导,并使步骤在区域中显示,以便更轻松地在步骤之间切换。最初,这个向导出现在选项卡区域中,嵌套区域正常工作。现在,我想将其制作成模态对话框,但是打开后内部区域从未被注册到区域管理器中。因此,我无法添加我的向导步骤。 我认为区...

11得票2回答
如何在使用Xamarin.Forms后弹出页面后处理ViewModel?

我想做的是在ViewModel不再需要时取消订阅事件。我尝试过实现IDisposable,但Xamarin.Forms和Prism.Forms都没有调用Dispose()。 我们使用Xamarin.Forms创建应用程序,使用Prism.Forms进行MVVM。当导航到新页面(推入堆栈)时,...