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

c# - Prism AutoWireViewModel 是否与 MEF 兼容?

我正在尝试结合AutoWireViewModelMefBootstrapper各种模块中的视图之间导航。但是我得到一个例外:

设置属性“Prism.Mvvm.ViewModelLocator.AutoWireViewModel”引发异常

异常指向这行代码: xmlns:prism="http://www.codeplex.com/prism"

XAML:

看法:

视图模型:

壳:

错误截图

0 投票
1 回答
272 浏览

c# - PresentationFramework 中的 Prism 6 自定义交互 InvalidOperationException

我已经使用 Prism 6 实现了 Word 2016 的任务窗格。从该任务窗格中我需要显示一个模式窗口,因此我实现了 prism 自定义交互。窗口是从绑定到委托命令的按钮开始的。在第一次单击时,一切都按预期工作,但是在第二次单击时出现异常。开发环境:VS2015,Office 2016,Windows 10 希望有人能指出我正确的方向。这里有一些更详细的信息:

触发:

提高通知:

自定义确认视图模型:

0 投票
1 回答
956 浏览

c# - 将异步任务与 INavigationAware 与 Prism 一起使用

async当此方法不是时,如何将方法调用到实现接口的方法中async

在我的 ViewModel 中,我有一个async方法,每次用户导航到视图时都应该执行该方法。

我能找到的最快(坏)解决方案就是这个

0 投票
1 回答
302 浏览

mvvm - 如何使用 Prism 6 和 Behavior SDK 禁用按钮

在我的主页中,我有一个所有项目的列表视图,一旦用户单击其中一个,它将导航到详细信息页面。在详细信息页面中,我创建了一个最后一个按钮来跳转到最后一个项目,

这是我的页面视图模型的一部分

这里一切正常,除了如果我单击列表视图中的第一项,或从第二项跳转,最后一个按钮将不会被禁用,但单击它不会做任何事情。但是,如果详细信息页面显示第一项,我想禁用该按钮,请问有什么帮助吗?

0 投票
0 回答
63 浏览

wpf - 将 PRISM 从 4 升级到 6.1 后 WPF 应用程序中的加载行为发生了变化?

(这是我之前发布的问题的一个版本(已删除的帖子)。该问题已被删除,因为我已经离开一个月并且无法回复评论。我要感谢用户 @StepUp 和 @Brian Lagunas他们在那里发表的评论,并为没有回复他们而道歉。)

一个月前,我测试将 WPF 应用程序从使用 PRISM 4.0 升级到使用 PRISM 6.1。在大多数情况下,我只是更改了对新程序集的引用,并更改了基类和方法获得新名称的部分。

该应用程序有一个主菜单,其中包含一个 AnimatedTabControl,它是 MainRegion。然后在主区域注册不同的模块。这些可以再次由包含更多视图的不同视图组成。

我在升级到 PRISM 6.1 后看到的是,使用 PRISM 6.1 在 AnimatedTabControl 中的视图之间切换比使用 PRISM 4 需要更长的时间(第一次)。(对于具有大量视图的模块之一)其中,第一次点击从 1,3 秒(棱镜 4)到超过 5 秒(棱镜 6.1)。

经过更多调查后,我发现性能发生这种变化的一个可能原因是调用 ViewModel 的不同构造函数的时间发生了变化。在带有 PRISM 4 的旧应用程序中,不同视图下的所有视图模型似乎在应用程序启动时被调用,因此从数据库中加载查找集合就完成了。升级到 PRISM 6.1 后,此加载似乎已推迟到用户第一次单击特定菜单项时。

我想知道是否有人对我应该从哪里开始寻找改变这一点的设置有一些指示。Brian Lagunas 说 PRISM 框架从 4 到 6.1 没有任何变化,所以它必须在我的应用程序中。很可能就是这种情况,尽管我在升级时尽量不改变任何其他东西。欢迎任何指点。

关于格特

0 投票
1 回答
316 浏览

c# - prism 是否与 wpf 多平台兼容的其他 gui 框架一起使用?

我想知道我是否可以将 Prism 框架与AvaloniaUI一起使用,以及我的应用程序是否仍然是多平台的。

我现在只有一个窗口,它可以工作,但是,它也可以与 linux/macOS 一起工作吗?

0 投票
0 回答
483 浏览

c# - 需要 Wpf Prism 6.2 Unity MVVM 指导

我曾经在 WPF prism 4 上团结一致地工作。现在回到这个话题,很多事情似乎都发生了变化。

我已经从https://github.com/PrismLibrary/Prism-Samples-Wpf下载了示例项目“ModularityWithUnity.Desktop”

这对我来说有点奇怪,现在没有类型注册了。如何在运行时解析视图模型、服务?

0 投票
1 回答
2424 浏览

c# - ObservableCollection 中的 Prism ObservesProperty

PersonList如果 中的项目已更改,我如何触发ObservesProperty

0 投票
2 回答
228 浏览

c# - TimeTrigger 在单进程 UWP 场景中未触发

在过去的几天里,我一直在用头撞显示器。我正在为 Windows Store 开发一个 UWP 应用程序(针对 14393),并且我正在为 MVVM / IoC 使用 Prism/Unity 框架。

由于更新 Live Tile 所需的数据存储在实现 Repository 模式的类中,并且一切都通过 Unity 进行管理,因此我没有为后台执行创建单独的进程,因此甚至简化了整个 BGTask 注册过程。

实际的BGTask注册码如下:

注册成功完成。在 PowerShell 中执行 Get-AppBackgroundTask 会显示这两个任务,因为它应该是。但是,TimeTrigger 永远不会触发。将 TimeTrigger 与 MaintenanceTrigger 交换可以解决问题,尽管智能手机需要插入充电器,这不是可接受的解决方法。

强制任务通过 VisualStudio 或 PowerShell (Start-AppBackgroundTask -TaskID) 正确执行并更新磁贴。

您还有其他有用的提示要分享吗?

编辑 2017 年 12 月1 日 我创建了一个 Repro,其中包含一个带有两个项目的 Visual Studio 解决方案:

  • 动态磁贴测试简单:使用 UWP 每 15 分钟更新一次动态磁贴非常简单。一切都按预期工作。
  • Live Tile Test Prism:再次,使用 Prism 和 Unity 对上述项目进行简单转换。不起作用,因为当操作系统尝试启动应用程序以更新磁贴时,Unity 容器为空(未初始化)。

这解释了我遇到问题的原因:Unity 没有初始化,我无法通过存储库检索数据,应用程序崩溃和 GG。

现在我只需要了解为什么 Unity 在 OnBackgroundActivated 方法中不可用。快到了伙计们!!

复制:https ://github.com/eraser85/LiveTileTestRepro

0 投票
1 回答
153 浏览

c# - PRISM missing region for DevExpress NavBarGroup

I have a really strange problem with PRISM 6 and NavBarControl / NavBarGroup.

I have the following in my Shell.xaml

I create a custom RegionAdapter for the NavBarGroup. The method that needs to be implemented CreateRegion returns a new AllActiveRegion(). This method only gets hit twice and returns a new region for Reports and Administration.

The first region named Business is missing. If I add a new group at the beginning then that region is missing and the next one is added...

Any ideas what i could do?

Thanks for the help...