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

c# - 在 Prism 6 中加载所有模块后使用 ViewModel 初始化 Shell

我的 Shell / MainWindow的 ViewModel (通过设置)请求一个依赖项,该依赖项在启动时使用ConfigurationModuleCatalogAutoWireViewModel="True"加载到模块中。 因为Shell在模块之前初始化,DI容器显然无法解析,所以应用程序崩溃。

我已经尝试了这篇文章的两种方法,但都没有奏效。

我试过这样:


用法

它开始计算模块,然后应用程序由于同样的原因而崩溃。
如果上述方法不适合我的目的,该问题如何解决?

谢谢!

0 投票
0 回答
579 浏览

xamarin.forms - xamarin prism forms属性更改不触发

我对 prism.forms 和 propertychanged 有疑问。

我有下面显示代码的设置模型、设置视图模型和设置页面,

设置模型

设置视图模型

和 SettingsPage XAML

当用户输入 url 时,IsEnabled 属性将为 true,当 Url 为空时,IsEnabled 属性将为 false,如果 IsEnabled 为 false,则保存按钮,按钮未启用。

我的主要问题是,我写了 Entry url 但没有触发 propertychanged 事件?

我该如何解决这个问题?

谢谢你。

0 投票
1 回答
1747 浏览

c# - 当我在 WPF Prism 应用程序中使用自定义模式对话框时,出现“没有为此对象定义无参数构造函数”错误

在我的 Prism 6 WPF MVVM 应用程序中,我使用自定义模式对话框来登录用户。此对话框产生(在 XAML 中)以下设计时错误:“没有为此对象定义无参数构造函数”。下面是对话框的 XAML 标记:

对话框的构造函数(来自其 ViewModel)请参见下文:

从上面对话框的 XAML 中可以看出,我使用行为 (PasswordBoxBindingBehavior) 来使 PasswordBox 的数据绑定成为可能。下面是 PasswordBoxBindingBehavior 类定义:

我从应用程序主窗口(Shell)调用此对话框。下面是 XAML 标记(与对话框相关)。此标记来自应用程序主窗口(Shell)标记。请参见:

在这个标记中

出现以下错误:“没有为此对象定义无参数构造函数”。我尝试在对话框的 ViewModel 中添加第二个构造函数(即无参数),但错误并未消除。虽然这只是设计时错误,但即便如此,它也应该被消除。我该如何纠正这个错误?

0 投票
0 回答
209 浏览

c# - 如何以及谁在更改分层 (TreeView) ViewModel (MVVM) 的模型

我正在使用 WPF/MVVM/Prism 开发一个小的“有趣”项目,它的主要组件是一个 TreeView,它显示了某个路径的文件结构。ViewModel 的工作原理取自 Josh Smiths 的文章http://www.codeproject.com/Articles/28306/Working-with-Checkboxes-in-the-WPF-TreeView

我实际上需要两件事:

  1. 我想获取 TreeView-View 的已检查项目列表,显示在另一个视图(比如说列表视图)中,并且还显示它们的状态已经改变。
  2. 我想修改列表视图,然后将其反映在 TreeView 中。

不知何故,我没有找到一个好的解决方案,因为 Josh 使用的分层 ViewModel 让我很难掌握在两个 ViewModel 中都可以使用的“共享”模型。

但在陈述我的问题之前,让我们先看看我的代码:

我的“ExplorerView”使用分层数据模板,如下所示:

在 Josh 的文章之后,ExplorerViewModel 将子项显示为List<CheckableItemViewModel>只有一个条目 - 实际上还有其他子目录或文件。目录本身也有孩子。

现在回答我的问题:

  1. 如何将 my 连接CheckableItemViewModel到“某种”全局CheckableItemModel?如果我通过解析已注册的实例(统一容器)来注入构造函数,我就会遇到问题,如果我想同时拥有两个 ExplorerView(或者不是吗?),我就无法做到这一点。
  2. 如果每个人也需要构造函数参数,我该如何注入CheckableItemViewModel(这是使用参数覆盖的情况吗?)
  3. 如何获取实际选定项目的检索列表(或者我应该何时何地更新相应的模型)?
  4. 如果其中一个被更改,我如何获得“更改”标志CheckableItemViewModel

如果我错过了一块拼图,请告诉我。

感谢您的任何建议。

0 投票
1 回答
961 浏览

c# - 模型中的属性更改时文本块不更新

我的文本块没有更新更新我的模型中的值。如果我更新 ViewModel 中的文本块,它可以工作,所以我的绑定似乎是正确的。我相信问题在于我在模型中更新它的方式,但我不确定为什么我的 observableCollection 也只更新,因为我来回传递值不确定这是好的 MVVM 策略。

XAML 部分:

ViewModel 部分:

模型部分:

当我运行调试器时,我可以看到 P4LabelBatteryViewModel.FilesProcessedBlck 正在被修改,但 XAML 没有被更新。

0 投票
1 回答
185 浏览

wpf - 为什么 Unity 注册会破坏 Prism 查找我的模块的能力?

在我的子类中,我在类的方法UnityBootstrapper中注册了一个类型。ConfigureContainer()对于这个问题,接口类型和实现类是无关的;它们存在并且可以解决。相关的是接口和类型是在包含我要加载的模块的同一个程序集中(我们称之为C )定义的。

我在程序集AB中有另外两个模块。这些模块是由DirectoryModuleCatalog引导程序中使用的InitializeModules()方法找到的;程序集C的模块不是。

当我删除有问题的注册时,找到了C。当我将接口和目标类移动到另一个程序集并重新添加注册时,再次找到C。

当我将注册从引导程序移动到C模块的构造函数内部并使用 inject 在那里注册时,找到了模块,并且注册成功。IUnityContainer

因此,似乎注册顺序和位置以某种方式影响了模块加载,并且毫无例外地默默地这样做。现在我正在使用“在该模块的构造函数中从我的模块程序集中注册类型”方法,但这感觉像是一种解决方法。

这是“这样做的方法”吗?这是一个已知的限制或错误吗?

0 投票
0 回答
365 浏览

wpf - 如何使用 Autofac 从 Prism 中的模块添加内部依赖项?

使用来自http://www.milosev.com/98-c/wpf/373-autofac-and-prism-together#dependencyInjection的说明,我尝试设置模块的依赖项(例如,ViewModel 需要构建一些 IServices)。我唯一没有使用的是 MEF 的东西,但据我所知,它是 Unity 或 Autofac 的替代品。

我找不到任何合适的地方来注册特定于我的模块的类型。暂时我使用从我的模块类调用的静态方法Bootstrapper's ConfigureContainerBuilder()

但它在我的模块初始化之前被调用。有没有办法在模块注册期间添加这些类型?还是由于 Autofac 构造容器的方式我无法注册新类型?

0 投票
0 回答
132 浏览

c# - Prism 从 Model 更新 Viewmodel

我想我错误地问了我的问题,因此有一些错误的代码。我想要做的是拥有更多的 Model-Controller(?)-ViewModel-View,我在控制器中可以拥有在多个 ViewModel 中使用的代码,因此我不必多次编写它。我无法掌握的部分是如何在控制器类的循环中更新 ViewModel。控制器有一个循环计数器,我想用它来更新 ViewModel 中的参数,但在我返回 ViewModel 之前不会更新。

我试图弄清楚如何使用 Prism 从模型更新 Viewmodel。我可能做错了,但我认为我可以让我的类成为一个可绑定的基础,然后让它在修改时自动更新我的视图模型,而不是使用 INotifyPropertyChanged。

我有一种方法可以遍历一些目录并跟踪一些文件。我想让循环更新一个实时更新视图模型的字段,因为我正在使用 BindableBase 我相信我应该能够使用它来通知 ViewModel 模型的更新。现在代码不会自动更新 ViewModel,因为我对如何完成这项任务有点迷茫。

视图模型

模型:

0 投票
1 回答
499 浏览

c# - 带有 WPF 的 Prism 6.0 没有依赖注入?

我正在 WPF 中开发一个非常小的应用程序,在对 Caliburn.Micro 和 MVVM Light Toolkit 不满意后,我决定使用Prism 6.0框架。

我希望能够在我的应用程序中使用区域,但我不想使用 Unity 和依赖注入,因为它对于这个应用程序来说太过分了。

如果我想要一个 Shell,它是一个定义了一个区域的主窗口,该区域将在其一个区域中显示 ViewA 或 ViewB,我该如何在不使用 Unity 或 UnityBootstrapper 的情况下做到这一点?我无法弄清楚这一点,因为所有在线示例和学习材料都使用 Unity 或其他一些 DI 系统。

编辑:进一步澄清:我主要是尽量避免使用 Unity/DI,因为它迫使我使用这个应用程序非常小的模块,我不会从模块中受益,它只会使项目更难理解新的眼睛。

0 投票
1 回答
792 浏览

c# - INavigation 无法在 Xamarin.Forms 中使用 Prism

我是 xamarin 形式的棱镜新手。为了使用 xamarin 实现 prism,我安装了三个软件包:

  1. 棱镜芯
  2. Prism.Forms
  3. Prism.Unity.Forms

并像这样从 PrismApplication 继承 App:

我想从文件后面的代码中将 View 与 ViewModel 绑定,如下所示:

为此,我找到了这段代码。此代码在 App.xaml.cs 中:

这是我的 ViewModel 代码:

当我删除它时它工作正常INavigationService

但它显示错误:

未处理的异常:


在异常发生时,容器是: