问题标签 [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 投票
0 回答
709 浏览

shell - 在 prism 6 中的 shell 之前显示的登录屏幕

我正在使用 Prim 6 开发 wpf 示例应用程序...我有登录窗口和主屏幕(Shell)...我使用统一作为 BootStrapper。

我想在 shell 加载之前显示登录屏幕......我正在这样做......

在上述情况下,登录屏幕出现......在身份验证时,它进入 shell 屏幕但 RegionNavigation 不起作用......

如果我保持

一切正常,但登录屏幕没有首先显示。因此,无法验证...

谁能建议如何解决这个问题?

问候,帕万

0 投票
2 回答
3566 浏览

c# - WPF Prism 模块初始化

我有一个带有两个模块的 Prism Shell。一个模块应该是主应用程序模拟,MainAppMock而另一个模块应该是主系统用作区域的任何模块,ModuleOne. 可能是一个,可能是一百万个模块。

问题在于了解 Prism 的工作原理。除非我在文件中调用它的MainAppModule命名空间,否则初始化正确。Bootstrapper MainWindow.xaml

我的问题:这是因为它在我调用该命名空间时在运行时加载模块,因此Prism因为它已经加载而没有加载它?幕后究竟发生了什么?

壳:

MainAppMock 和 ModuleOne 除了名称之外是相同的。

ModuleOne 类:

问题就在这里。在Bootstrapper MainWindow

注意:如果我删除mainAppMock上面提到的命名空间,它工作正常。

0 投票
0 回答
1114 浏览

c# - 如何使用单元测试和 Prism 6 (WPF & MVVM) 测试区域管理器导航

我有一个包含算法列表的视图模型。该列表在视图中显示为列表框,用户可以选择其中一种算法。选择算法后,用户可以单击一个按钮,该按钮应在视图模型中执行命令,该命令加载不同的视图,并带有所选算法的详细信息。

我想通过创建一个单元测试并确保导航也能正常工作来对此进行测试。但我想我需要为区域管理器做一些额外的初始化,因为 IRegionManager.Regions 集合是 null 并且因为它是只读的,所以我无法创建它。

这是测试,任何建议都会有所帮助。谢谢你,纳迪亚

0 投票
2 回答
123 浏览

c# - 在 Prism 应用程序中绑定 SolidColorBrush

我正在使用 Prism 6 构建一个应用程序,但我对 MVVM、数据绑定和所有这些设计模式都是新手。在应用程序中,我需要根据我的视图模型的某些属性的值显示不同的颜色。

为此,我在资源字典中有一些 SolidColorBrush,如下所示:<SolidColorBrush x:Key="{x:Static status:Status.notViewed}">#FFe74856</SolidColorBrush>

然后在我看来,我使用:prism:ViewModelLocator.AutoWireViewModel="True"将其连接到相应的视图模型。我还在画布上使用绑定(但可以是网格或其他任何东西,我并不在意),如下所示<Canvas Background="{Binding B}" Margin="5" />:作为旁注,我将其他元素绑定到其他属性,例如绑定到字符串以显示日期的文本块,并且效果很好。

现在,在我的视图模型中,我B为 binding创建了相应的属性public SolidColorBrush B = (SolidColorBrush)Application.Current.Resources[Status.notViewed];

当我运行我的应用程序时,画布保持白色......但是我很确定它B包含画笔,因为我在视图模型的构造函数中输出了它的内容(Console.WriteLine("Color: {0}", B.ToString());0 并且我得到了正确的值。

我究竟做错了什么?

谢谢

0 投票
2 回答
7908 浏览

c# - 带有 Unity 的 Prism 6 - 为没有命名约定的视图解析视图模型

我正在尝试在我的 WPF 应用程序中使用带有 Prism 6 和 Unity 的 DI 来解析视图模型,这很有效。但是我不知道如何告诉框架哪个视图应该与哪个视图模型合并。

如果我使用约定,即有 ViewModels 和 Views 命名空间,以及 ViewA 和 ViewAViewModel 类,一切正常,但是我希望有更多的灵活性来命名和组织我的类,这就是为什么我想以某种方式明确地告诉框架哪个视图与哪个视图模型一起使用。我尝试了很多东西,但没有什么真正有效。当前的“解决方案”使应用程序运行但未设置视图模型。

这是代码:

ViewA.xaml

主窗口.xaml

ViewAVM.cs

模型.cs

应用程序.xaml.cs

引导程序.cs

0 投票
1 回答
498 浏览

c# - 如何使用 Prism 在 Xamarin.Forms 中自动注册视图

在带有 Prism 和 Unity 的 Xamarin.Forms 中,有没有办法注册所有受导航影响的视图而不明确指定它们?

Prism 提供的示例项目,在 App.xaml.cs 中有一个函数 RegisterTypes,它具有以下行:

我希望这在开发应用程序的某个时候会更大。

我不是 Unity 专家,但我尝试了 DependencyService 或 IUnityContainer 的一些方法,但没有成功。

那么我将如何注册所有视图(或至少是视图的子集,例如,实现给定接口)以进行导航?

0 投票
1 回答
813 浏览

win-universal-app - StyleCop.dll 的构建错误

我正在尝试运行 Prism 示例项目AdventureWorks.Shopper

问题是,当我构建项目时,我收到以下构建错误:

严重性代码描述项目文件行抑制状态错误无法从程序集 C:\Users\yeasin.nuget\packages\StyleCop.MSBuild\4.7.49.1\build..\tools\StyleCop.dll 加载“StyleCopTask”任务。无法加载文件或程序集“Microsoft.Build.Utilities.v3.5,Version=3.5.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。AdventureWorks.UILogic

有没有人经历过?

我正在使用带有更新 2 的 VS 2015 社区

0 投票
1 回答
566 浏览

xaml - 在 UWP 的页面导航中,pageState 和 viewModelState 为空

我正在使用带有 UWP 的 Prism 6。我在 MainPage.xaml 中有一个按钮,它重定向到 DashboardPage.xaml。在 DashboardPage 中,我将视图状态保存在 DashboardPage.xaml.cs 中:

并在 DashboardPageViewModel.cs 中保存视图模型状态:

通过按顶部栏中的后退按钮,我回到了 MainPage.xaml。之后,当我再次导航到 DashboardPage.xaml 时,我发现视图状态和视图模型状态为空。这意味着,在下面的 DashboardPage.xaml.cs 代码中

pageState被发现为空。

而且,对于 DashboardPageViewModel.cs 中的视图模型状态:

viewModelState为空

0 投票
1 回答
552 浏览

wpf - UWP 中的区域和区域管理器概念

对于 UWP 开发,Prism 6 提供了 Prism.Unity.Windows.dll 和 Prism.Windows.dll 两个程序集,但它们不支持 WPF 版本的 Prism 中的 Region 和 Region Manager 概念。作为 UWP App 设计的一部分,我们应该识别页面和页面导航/更新之间的逻辑。我们需要为页面基类制作 SessionStateAwarePage 并使用 INavigationService 进行页面之间的导航。Prism 团队会支持 UWP 中的 Region 和 RegionManager 概念吗?还是我们应该在 UWP 中使用页面和页面导航概念?

0 投票
2 回答
4151 浏览

c# - 配置 ViewModel 的模式?

我们使用 Prism 启动了一个 WPF 项目,我遇到了一个问题:

有时在 ViewModel 中,我们注册一些事件或启动的服务,我们必须在关闭之前停止。这意味着当我关闭应用程序时,我需要释放我在 ViewModel 中获取的资源。然后 Dispose 会很有意义。

目前我正在使用ViewModelLocator.Autowire = TruePrism,我在想当不再需要 View 时,如果需要它会处理它。

我有两种情况:

  • 当我“导航”到视图时(RegionManager.RequestNavigate("RegionName", "RegionUri")
  • 当我在视图中使用“子视图”(这是具有自己的 ViewModel 的用户控件)时

我的问题是:处置这些 ViewModel 的正确方法是什么?我可以看到多种方法,但我不确定哪一种是正确的。