问题标签 [prism-6]

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 回答
174 浏览

c# - 使用 prism/unity 加载查找表的最佳时间是什么时候?

我正在寻找一些关于使用 Prism Unity 加载查找表(例如状态代码)的良好设计的建议?我的视图库以域为中心,并且我有传递 IUnityContainer 的模块。在初始化部分,我向容器注册了 RegisterType,例如 IStateCode、StateCode。

我应该注册类型,然后加载状态对象,然后使用注册实例吗?这应该在每个域(dll)中完成还是应该集中加载表一次,在哪里?我曾考虑在主窗口的 Load 中加载查找表,但我必须引用该模块中的所有查找类。如果我使用一个中心位置来加载查找表,我不必担心查找表为空并且它位于一个区域中。怎么说呢?

0 投票
2 回答
3498 浏览

c# - WPF 和 Prism 的常规对话框窗口

我在尝试在 shell 窗口中为各种视图管理 VM 状态、为大量编辑对话(模态或非模态)以及窗口本身的状态之间切换时经历了太多痛苦。

现在我想用一个shell窗口重做,希望只有一个对话窗口,那么我的windows和Vms的耦合要小得多,我可以借用shell的VM管理模式来管理对话。

我看到了很多直接管理弹出窗口和不太通用的非模态的指导,但是是否有任何既定的模式或指导可以只使用一个对话来托管各种虚拟机?更好的是,Prism 中是否已经提供任何此类功能?

我想真正坚持 DRY 原则,并且视图和 VM 中的继承增加了我无法承受的复杂性,这在本应是快速的第一次迭代原型上是无法承受的。

0 投票
1 回答
303 浏览

c# - 为什么我只在设计时在 WPF UserControl 及其所有者窗口中收到构建错误?

我有一个MainMenu在我的MainWindow视图中使用的用户控件,它有一个MainWindowViewModel. MainMenu标记开始像:

在设计模式下,我的错误列表中有 2 个错误,它们都是:

无法将“System.Windows.Application”类型的对象转换为“ApptEase.Client.App”类型

第一个出现在<shell:MainWindowViewModel />上面用户控件标记的行中。第二个出现在下面<shell:MainMenu Grid.Row="0" />MainWindow标记摘录行中。

主窗口摘录:

MainWindowViewModel来自BaseViewModel

如果我注释掉该((App)Application.Current).AppState行,错误就会消失。然而,当我构建时,除了“成功构建”之外,我在输出窗口中看不到任何输出,并且应用程序启动良好,即BaseViewModelctor 执行良好,无一例外。

如果我别无选择,只能接受错误消息是无害的,有没有办法抑制它们?我没有看到编译器指令在 XAML 标记中起作用。

0 投票
3 回答
1645 浏览

c# - 属性更改事件没有被触发 wpf

我必须动态更改文本框中的值,从组合框中选择一个值,该组合框存在于不同的视图中。当更改依赖属性的源时,propertychangedEventHandler 的值没有改变,即它保持为空,因此事件不会被触发。结果,文本框中的文本没有改变。下面是代码。我已将文本框中的文本绑定到 _name 属性。

Xaml 代码

0 投票
1 回答
3193 浏览

service-locator - ServiceLocator 当前的 GetInstance?

我在使用 MEF 的目录中发现了程序集,当用户选择菜单时,它们会在运行时需要时加载。

MainMenuListViewModel OnMainMenuSelectionChanged()

加载程序集后,每个程序集都有自己的 UI,并且可以根据用户需要将视图添加到其中,但是当我使用excelView = ServiceLocator.Current.GetInstance(); 我得到一个例外。

ExcelController ShowExcelView()

异常详情 ServiceLocator.Current.GetInstance 上的异常详细信息

我该如何解决这个问题,因为我假设目录发现的组合被添加到AggregateCatalog以便ServiceLocator可以正确找到它们?

这是主要 IExcelView 的设置方式: 在此处输入图像描述

0 投票
1 回答
1002 浏览

xamarin.forms - Xamarin.Forms Prism 主视图在弹出窗口可见时不显示汉堡包图标

我已将 Xamarin.Forms Prism 应用程序设置为使用主从页面(MasterBehavior 设置为 Popover)进行导航,但我注意到我的 Prism 应用程序和使用此页面的示例 Xamarin.Forms 应用程序之间存在一些差异(https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/)。

在 Android 上,单击汉堡包图标会使两个应用程序中的主文件滑出。在示例应用程序中,汉堡包图标仍然可见。在我的 Prism 应用程序中,汉堡图标不可见,因为主视图占据了屏幕的整个高度,如下所示:

安卓

在 UWP 上,单击汉堡图标会使母版在两个应用程序中滑出。在示例应用程序中,汉堡图标仍然可见,并且主页的标题显示在顶部。在我的 Prism 应用程序中,这些项目都不可见,如下所示:

UWP

Prism 应用程序主视图的顶部和底部似乎也有某种类型的填充或空白空间。

这些差异是由 Prism 本身引入的,还是有办法将 master 配置为类似于 vanilla Xamarin.Forms 示例?


更新的屏幕截图

为了更好地展示我看到的问题,这里有更多截图。

Xamarin 示例、应用程序启动然后点击汉堡图标保持导航栏(带有汉堡图标)可见,主可见:

赛姆

我的 Prism 应用程序、应用程序启动然后点击汉堡图标会使主视图占据屏幕的整个高度:

棱镜

0 投票
0 回答
81 浏览

prism - ConfigureViewModelLocator 绑定不同程序集中的视图

好吧,所以我对这种事情不太好。我目前有以下用于在引导程序中配置我的视图模型定位器。

据我了解,这会搜索视图所在的程序集,并将任何以视图结尾的视图的数据上下文绑定到匹配的命名视图模型。(对不起,我也很难解释这些事情)

但是,我们希望进一步分离模块。如果视图模型位于不同的项目中,任何人都可以向我解释我们可以将视图模型链接到视图的方法吗?

IE 如果我有这两个项目

我想将一个项目的视图模型绑定到另一个项目的视图。这是可行的吗?如果是,人们将如何做到这一点?任何帮助,将不胜感激。

0 投票
1 回答
390 浏览

wpf - MEF、Prism 和导航上的新视图实例

下面的代码适用于视图的共享实例。现在我想要实现的是每次导航到ViewB我想要一个新的视图实例及其支持视图模型。我已经尝试了以下各种组合,但它们似乎最终都以RequestNavigate我第二次尝试导航到 ViewB 时默默失败而告终......

IsNaviagtionTarget在视图导航到一次后, 我也尝试设置为 false 。

引导程序:

视图B(类):

ViewBViewModel:

ViewA 只是有一个带有命令的按钮,该命令调用:

ViewA 导航命令:

0 投票
1 回答
198 浏览

c# - 这个 viewModel 是如何创建的?

我在这里有一个简单的应用程序,但我不确定我的 ViewModel 是如何创建的。我假设它来自统一容器,但我不确定和好奇。该模块将视图初始化并注册到区域。视图背后的代码在其构造函数中初始化了 ViewModel,并且 ViewModel 调用了之前注册的一些服务。

我的问题是,当我从未在统一容器中注册 ViewModel 类型时,如何在 View 的代码中创建 ViewModel?RegisterViewWithRegion 方法中是否发生了一些神奇的事情?

AlarmsModule.cs:这只是将视图注册到区域

查看.xaml.cs:

视图模型.cs

0 投票
1 回答
349 浏览

c# - 为什么 ModuleAttribute 和 ModuleDependencyAttribute 在我的 WPF Prism 应用程序中不起作用?

我有两个模块:

然后我像这样注册它们,在Bootstrapper.ConfigureModuleCatalog

当我检查模块目录时,只有CommonModule正确配置,因为我在 中指定了所有模块属性AddModule,而不是因为它的[Module(ModuleName = ModuleNames.Common)]属性。这些属性似乎被忽略了,因为尽管BranchModule有两个属性,但我没有AddModule在目录中提供该信息,这个模块的名称是它的类型名称,它没有依赖关系。

如果我在调用时仍然需要复制相同的信息,这些属性是什么AddModule