问题标签 [prism-7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
91 浏览

xamarin - Xamarin Prism7 - IUnityContainer 没有我注册的类型

我正在使用 PRISM 构建我的第一个 Xamarin 移动应用程序(android / iOS)。我正在关注这个非常有用的教程https://xamgirl.com/prism-in-xamarin-forms-step-by-step-part-1/

问题是注入到我的 ViewModel 中的 IUnityContainer 没有我在 PrismApplication 的 RegisterTypes(IContainerRegistry containerRegistry) 函数中注册的类型。

我的问题是:

如何将我的类型注册到 IUnityContainer 以便我可以在我的 ViewModel 中解析它们?

或者

如何获得具有我注册的类型的容器?

0 投票
1 回答
131 浏览

wpf - Prism 7 WPF 缺少文档

当我访问https://prismlibrary.com/docs/wpf/时,左侧导航菜单中的大多数主题都没有内容。该网站是否有问题,或者我应该寻找其他地方。我正在拼命尝试将旧的 Prism 6 应用程序转换为 Prism 7 并且有太多重大变化,以至于我无法找到任何文档来解释新方法应该是什么。GitHub 上的大多数 WPF 示例,也使用 Prism 6 而不是 7。 在此处输入图像描述

0 投票
2 回答
750 浏览

c# - 如何在 Prism 的依赖注入容器中指定构造函数参数?

如何在使用 Prism 配置的依赖项中注入构造函数参数?

我覆盖RegisterTypes注册我的依赖是这样的:

但是,MyService有一些我需要能够传入的构造函数参数。我希望能够将构造函数参数传递给MyService,类似于我在 Unity 中这样做的方式。

0 投票
0 回答
185 浏览

c# - Prism 7.2 WPF - ViewModelLocationProvider 的可能问题

我在 WPF 项目中使用 Prism 7.2.0.1422 并且有些东西我无法理解。

我正在尝试自定义 ViewModelLocationProvider,特别是使用“SetDefaultViewModelFactory”方法。所以我重写了 App.xaml.cs 中的方法“ConfigureViewModelLocator”,只是为了测试我试图引发一个异常:

当我执行代码时,使用了“ConfigureViewModelLocator”方法,因此应该修改 ViewModelLocationProvider。但是“MainWindow”使用它的视图模型“MainWindowViewModel”正常打开。我使用相同的逻辑通过以下代码引发异常,以确保我没有犯错,这次抛出异常。

我还测试了使用https://github.com/PrismLibrary/Prism-Samples-Wpf上的示例项目“09-ChangeConvention”中的方法“SetDefaultViewModelFactory”自定义 ViewModelLocationProvider 。我注意到了同样的问题...

也许我做错了什么,或者“SetDefaultViewModelFactory”的自定义被忽略了......有人可以帮助我吗?谢谢

0 投票
1 回答
215 浏览

c# - 我可以动态调整在 Prism 中使用 IDialogService 打开的对话框的大小吗?

有没有办法在 Prism 的代码中使用动态调整对话框的大小IDialogService?我想根据用户的屏幕分辨率调整对话框的大小。

这是我打开对话框的方式:

这是我的对话框在 XAML 中的样子

0 投票
1 回答
186 浏览

prism - 如何使用 Prism 从我的视图模型中访问我的视图?

我正在为 MVVM 使用 Prism。在我的主窗口中,我有一个功能区菜单和一个显示所有视图的选项卡控件。我希望能够根据当前选择的视图使用上下文命令动态更新我的功能区。绑定比简单的命令列表更复杂(每个命令都有一个图标、子命令、不同的大小、分组等),所以我认为我需要以某种方式在主视图模型中获取对我的功能区控件的引用所以我可以以编程方式添加/配置我的功能区命令。如何从视图模型中获取对视图的引用?

0 投票
1 回答
184 浏览

xamarin - Prism,从 AppDelegate 访问 DryIoC 容器

我想从 App Delegate 中的 FinishedLoading 和 RegisteredForRemoteNotifications/OpenUrl 函数访问 IoC 容器,这可能吗?

在 Finishedloading 函数中初始化应用程序后,我尝试访问容器,但它抛出一个错误,说它无法解析。

0 投票
1 回答
275 浏览

wpf - 使用带有 IsNavigationTarget 的 Prism 处理嵌套视图,可以返回 false

我正在尝试为以下问题找到解决方案。我有一个 WPF 应用程序,我使用 mvvm 和 prism(最新版本 7)来构建它。这是我处理的表单/对话框的草稿: 用户对话结构

MainView 具有区域 - region1,我根据树视图中选择的内容将 SubViewA 注入到 region1。此视图表示树项内容。SubViewA itslef 具有区域 - region2,另一个视图 - SubViewB 基于组合框选择被注入到 region2 中。

我使用 INavigationAware 来管理对该区域的注入。

因此,要将视图注入我从 MainViewModel 使用的区域,请执行以下操作:

在 SubViewAViewModel 中,我实现了 INavigationAware,为了重用创建的视图,我检查是否创建了每个树项的视图。为此,我将 treeitemId 添加到参数中,然后在 IsNavigationTarget 方法中检查此 ID,如下所示:

当我想将 SubViewB 注入 SubViewA 的区域 2 时,我使用的方法相同。大多数情况下,当用户更改下拉选择时,会注入新的 SubViewB。

现在我的问题是——如果我在 SubViewBViewModel 中使用 INavigationAware 并且当 IsNavigationTarget 总是返回 true 时——一切都很好。当我尝试重用视图并再次选择返回 true 或 false 时,当我在树视图中选择第二个项目时,出现异常:“具有给定名称的区域已注册” - prism 抱怨 region2 已注册。

我知道当显示视图时我可以拥有服务并始终从服务中填充数据,因此我不需要重用视图。但这是一个更学术的问题——解决它的正确方法是什么?

PS 我尝试注册作用域区域管理器,但没有成功,我的问题是我不知道创建新作用域管理器的最佳位置在哪里以及如何将其注入视图模型。Parent 的 ViewModel 不是个好地方,因为我必须公开视图。如果我尝试使用附加行为,那么似乎区域内容会在调用行为之前更新。

PS2 我从复数视觉(Brian Lagunas)中找到了一个示例,他在其中创建了两个外壳,但它与我想要实现的不同。他在创建窗口的那一刻为每个窗口创建新的范围管理器。而且,如果窗口本身具有与我上面显示的相同的结构,它也会失败。

PS3 我观看了 Brian Lagunas 最近从头开始编写前景的流媒体,他的方法基于行为,他将一些视图与依赖视图相关联,它工作正常,但在他的示例中,依赖视图再次不包含区域。

谢谢你。

0 投票
1 回答
173 浏览

wpf - 从 PRISM 7 的配置文件中检索统一容器类型注册

统一容器的配置部分:

这些类型在App.xaml.cs文件中注册:

但是,由于 PRISM 7 版本中内置的容器抽象,容器实例与方法中所需的参数不匹配Configure。编译器会产生以下错误:

错误 CS1503 参数 1:无法从“Unity.IUnityContainer”转换为“Microsoft.Practices.Unity.IUnityContainer”

问题:如何检索正确的容器实例以作为Configure方法的参数传递

Ps在 StackOverflow上已经有一个关于相同问题的类似问题。但是,答案并没有为上述实例化问题提供解决方案。

0 投票
1 回答
34 浏览

prism - 如何根据所选视图和视图模型使用上下文项更新功能区?

在我的 Prism 应用程序中,我有一个功能区,我希望能够使用基于当前活动视图和视图模型的上下文命令进行更新。最初打开视图时(在 中OnNavigatedTo),我使用上下文命令更新了功能区,但是当用户在我的选项卡控件中的项目之间单击时,我无法弄清楚如何更新我的功能区。

我计划在IEventAggregator用户单击新选项卡时使用 Prism 发送“活动视图已更改”事件,然后让每个视图模型订阅该事件并让视图模型更新功能区(如果活动选项卡项是)查看模型的选项卡。问题是我需要我的事件数据包含一些参数,这些参数指定活动选项卡包含的内容,但我不知道如何确定哪个视图模型链接到活动选项卡控件项。

我如何知道哪个视图模型对应于选项卡控件项,或者是否有其他方法可以解决此问题?