问题标签 [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 回答
339 浏览

c# - IUnityContainer.RegisterType() 和 UnityContainerExtensions.RegisterType() 之间的区别?

我正在使用 Prism 和 Unity for DI 运行 WPF 应用程序。我有一个 Shell:MainWindow.xaml、一个容器:AppContainer.xaml,以及启动视图:StartupView.xaml。

主窗口.xaml

应用容器.xaml

StartupView.xaml 代码不相关。

我在引导程序中实例化 shell。我添加了一个 AppContainerModule。这是初始化():

这是我的 StartupViewModule.Initialize()

在一个小图中:

我使用了 [ModuleDependency] 属性来确保 StartupView 在 AppContainer 之后被初始化。

上面的代码有效,顺便说一句!

我的问题是关于我在偶然发现此解决方案之前拥有的先前代码。我在启动时遇到崩溃,错误是当 StartupView 试图注入自身时(在 StartupViewModule.Initialize() 期间)prism 找不到 MainViewRegion。将代码更改为上述代码有效。AppContainerModule中的以下内容不起作用

同样,起作用的是:

所以我的问题是,为什么?

0 投票
1 回答
430 浏览

xamarin - 棱镜 xamarin 怀疑。你能澄清一下吗?

我正在尝试了解 Prism Xamarin 导航以及如何与 xamarin 本身相关联

有人可以纠正我哪里错了吗?

也在棱镜中

如同

他们都在做同样的事情吗?

OnNavigatingTo(NavigationParameters 参数)与 OnNavigatedTo(NavigationParameters 参数)

它们都在构造函数被触发后被触发。任何实际示例何时使用一个以及何时使用另一个?

你在那里放置了什么样的逻辑。当你想加载表单时使用它们吗?通常你在那里放置什么样的验证以及为什么?

为什么我要使用 parameters.ContainsKey("myId") 或 navigationMode 检查。

我只是想了解应该如何使用 OnNavigatedTo/OnNavigatingTo。如果有人能用几句话来表达一个场景,我就会明白如何使用这些方法。

提前谢谢了

0 投票
1 回答
275 浏览

wpf - 如何创建和使用自定义 DataGridRow 触发器

我正在使用 Prism 6 创建我的应用程序,并且我需要根据日期为 DataGridRows 的背景着色。我开始创建一个 Blend SDK 触发器来接受两个参数:MinDate 和 MaxDate。然后该操作将设置背景颜色。但是,在使用触发器时,我遇到了障碍。它在集合中不被接受,当我使用 DataTemplate 时,我似乎无法让触发器执行。

这是触发器的代码。除了调用操作之外,它实际上并没有做任何事情,因为我想确保它在编码逻辑以检查日期之前正在执行。

DataTemplate 如下,并附加到 DataGrid ItemTemplate。

这是数据网格:

任何指导表示赞赏。

事件历史视图模型:

0 投票
1 回答
720 浏览

xamarin - 在 Xamarin Prism.Forms 模块 (Prism.Modularity) 中访问应用程序全局变量

我正在使用 Prism.Forms 开发 Xamarin Forms 跨平台应用程序。尝试使用 Prism.Modularity 在我的应用程序中实现模块化。除了现有的默认可移植类库之外,我还创建了几个模块(xamarin 形式的可移植类库)。现在我必须使用我在模块的 App.Xaml.cs(在 APP 类中)中声明的全局静态变量。无论如何我可以访问模块中的当前应用程序吗?或者是否有任何替代方法可以在模块和主 App 之间共享数据。

0 投票
2 回答
525 浏览

c# - 在 UWP 的 Prism 中调用 NavigationService.Navigate 时引发异常

我正在为 UWP 使用 Prism,并且我已经从 PrismUnityApplication 对我的应用程序进行了基础分类。我已经覆盖了 OnLaunchApplicationAsync 并且我正在尝试调用,

调用时,程序抛出异常,

我确实有一个名为 Views 的文件夹,并且在命名空间 Panda.UWP.Views 下确实有一个名为 HighlightsView 的视图。

这里有要遵循的命名约定吗?因为如果我将视图从HighlightsView重命名为HighlightsPage,那么一切似乎都运行良好!

0 投票
2 回答
422 浏览

c# - 如何将多个 View 的 DataContext 设置为 ViewModel 的一个实例

我正在为我的视图使用 ViewModelLocator,它在 Bootstrapper 中使用以下方法进行配置:

它工作正常,但为我的 2 个视图创建了两个单独的 ViewModel 实例。我希望我的两个视图都使用相同的 ViewModel 实例。

0 投票
1 回答
221 浏览

wpf - WPF MVVM/Prism (6.2)/Unity - PopupWindowAction 跨线程失去所有者

大约一年来,我几乎一直在使用 Unity 和 MVVM 模式在 WPF/Prism 中工作。我在建立一个 shell、几个模块和许多很酷的东西方面取得了相当大的成功,比如作用域区域管理器和 shell 托管的常见弹出窗口。

我今天遇到了一件让我非常头疼的事情:Cannot set Owner property to a Window that has been closed. 我需要定期检查程序集的更新,提示用户重新启动应用程序,然后在 shell 的 ViewModel 中处理它。我正在使用bootstrapper.Run(), 和 inbootstrapper是一种杀死所有窗口的方法。繁荣,window that has been closed.

这个错误是有道理的(而且很明显),但我似乎无法解决这个问题。在Prism 6.2中,引入了这个(也许更多/更少):

根据堆栈跟踪,这就是导致它失败的原因,因为它PopupWindowAction认为它Owner是现在关闭Window的(尽管值得注意的是这是新功能并且没有经过测试 < 6.2)。我似乎无法找到一种方法来重新实例化它或(或类似SetOwner东西) - 甚至在这里应该发生什么。

PopupWindowAction通过一个触发这个InteractionRequestTrigger,而所有这些都只是打开一个 custom UserControl。此外,所有这些都发生在另一个线程上,所以我必须回到主线程Dispatcher来找到我的作用域InteractionService(基本上会触发一个INotification):

我的问题是:弹出窗口是否因为它已关闭或现在位于单独的线程上而找不到它的父级?除此之外,这是一件合理的事情,还是有更好的解决方案来满足我的用户需求?

0 投票
2 回答
2177 浏览

c# - 棱镜 6 中的 ViewModelLocator 不起作用

我正在尝试在我的应用程序中实现 ViewModelLocator 模式,但 ViewModel 没有连接到视图。我是 prism 的新手,如果我在这里遗漏任何东西,请告诉我。

看法:

视图模型:

文件夹结构:

在此处输入图像描述

0 投票
1 回答
128 浏览

wpf - IDataErrorInfo.Error 有什么用途?

我刚刚开始了解 WPF、MVVM 和 Prism 6。我了解如何使用 IDataErrorInfo,但我不知道为什么或如何使用 IDataErrorInfo.Error。在我见过的每个示例中,它的 get 方法都返回 null 或未实现的异常。它必须在类中,否则会出现编译错误。

它是干什么用的?

0 投票
0 回答
237 浏览

wpf - 在子区域中使用 Prism 6 导航失败

大家好

当我想通过使用 requestNavigate 进入子区域(另一个区域中的区域)时,我在使用 Prism 6 的导航 api 时遇到了一些问题。

我有一个视图模型 ProgramsVM 显示在名为 ProgramContent 的区域中。此 VM 有一个命令可以切换到同一区域中名为 EditProgramViewModel 的另一个 VM。

但是当我触发命令时,requestNavigate 惨遭失败。

事实上,如果我在方法中设置断点并检查在区域管理器中创建的区域,我在列表中找不到区域 ProgramContent,尽管事实上我正在调试位于该区域中的实例。

我已经制作了一个项目来重现问题:如果有兴趣,Sample Project 。要重现该问题,请转到第二个 tad 项目并单击“Aller vers Edit”按钮

在此先感谢任何慈善人士。

  • 分钟 -

Ps:我正在使用 viewModelFirst 并且我找到了一些关于它的教程。有人有一些链接可以分享吗?