问题标签 [catel]
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.
catel - 用于 WPF 的 Catel MVVM 中嵌套控件的 ViewModel 未刷新
我有一个嵌套控件 (NC1),其中包含 3 个 NC2 实例。首次打开包含视图时,NC1 将为空,因此 NC2 的三个实例将为空。根据通过我的代码和框架进行的调试,这似乎可以正常工作。
当在包含视图中进行选择时,NC1 被正确设置(并且 ViewModel 被(重新)创建)并且其属性的值(通过 Fody.Expose 公开)出现在视图中。但是,NC2 的任何 ViewModel 都没有(重新)创建,它们不反映各自模型提供的值。
如果不上传大量内容,我不确定要提供哪些信息,所以我会尝试一下。
在 NC1 视图中,我有以下内容
<localViews:NC2 DataContext="NC2Entry1"/>
<localViews:NC2 DataContext="NC2Entry2"/>
<localViews:NC2 DataContext="NC2Entry3"/>
NC2EntryX 是 NC1 ViewModel 上的属性,它从列表中返回 NC2 模型的特定实例。NC2EntryX 属性未使用 RegisterProperty 注册。
作为说明,我发现我必须为 NC1 和 NC2 视图模型提供一个空参数构造函数。如果我不这样做,那么当 TypeFactory 尝试使用 Activator 而不是使用注入路径创建 ViewModel 时,我会在创建视图模型时收到 MissingMethod 异常。未使用注入路径,因为 TypeFactory 的第 591 行调用返回 false,因为传递的 NC2 模型“未注册”。(不确定是否应该或如何做到这一点。)
我正在使用 Catel 版本 3.9.0
c# - Catel/Ninject:解决 IUIVisualizerService 时出现 Ninject.ActivationException
当我试图解决 IUIVisualizerService 时,在 Ninject.dll 中出现了 Ninject.ActivationException。
有人可以帮我吗?
此代码部分调用问题:
解析器代码:
编辑:调用 GetService 后我得到一个空对象。但是没有引发异常。在 Visual Studio 的控制台输出上只能看到一条消息:
在 Ninject.dll 中引发了类型为“Ninject.ActivationException”的异常(第一次机会)。
编辑2:
Thx 伙计们的快速答案。这是遇到同样问题的人的具体解决方案:
在 NinjectResolver 中,您需要添加以下代码:
解决 IUIVisualizerService:
c# - Catel PleaseWaitHelper 更新后不起作用
我已经在我的 WinForms 项目中更新了 catel nuget 包,现在 PleaseWaitHelper.Show() 方法返回一个空引用异常。希望有人能够对此有所了解吗?
这是代码:
我之前使用的版本是 3.6,我已经更新到 3.9。
catel - Catel MessageMediator 中的两种通信方式
通过 messagemediator 设置双向通信的推荐方式是什么?
我的直觉是创建 2 个频道(请求/回复)。我看不到任何在 MessageMediator 中创建频道的方法。
然后我的想法是有 2 个 messageMeditor 实例,但这似乎很笨拙。
最后,我可以将回调作为我的消息的一部分。这是实现这一目标的推荐方法吗?
wpf - Catel 延迟加载包含视图/视图模型的程序集
我有一个 WPF 应用程序,其中大部分视图不会每天使用 - 想想维护窗口。我的想法是,将这些窗口的视图和视图模型移动到一个单独的程序集中,该程序集仅在其中一个显示时才加载,这将缩短启动时间并减少应用程序的内存占用。
首先,这是合理的做法吗?
如果是这样,实现这一目标的最佳“Catel”方法是什么?我可以使用 MEF,但它似乎不支持开箱即用的延迟加载程序集;它在构建目录时加载程序集。Unity 是否允许延迟加载?Catel 的 ServiceLocator/DependencyResolver 吗?
c# - 在使用具有现代 UI 的 Catel 时创建多个 VM
我喜欢 Catel 框架。现代 UI 看起来很不错。但是我在尝试使它们一起工作时遇到了问题。
我在 mui 项目中Home
添加了两个 catels 用户控件。Second
问题是当从执行Home
到Second
执行的转换HomeViewModel
已经创建了 3 次。
这种行为是由下一个代码引起的TransitioningContentControl
如果我评论一些行:
在这种情况下,相同的转换会导致创建HomeViewModel
1 次,但我不想在从控件HomeViewModel
执行导航时创建。Home
我怎样才能做到这一点?
wpf - Catel + EntityFramework
我只是一个初学者,问一个简单的问题.. 只需要一个移动的方向。有人可以用很少的话解释使用 WPF+MVVM 模式(使用 Catel)和使用实体框架创建的数据库的应用程序开发过程。1. 我创建模型(代码优先)并生成数据库 2. 我通过 Catel 基类创建视图模型 3. 我用 WPF 创建视图
问题是:如何将数据库与 Catel View Models 连接?在哪里加载 DBContext 和实体?我应该创建存储库吗?或者可能需要创建单独的模型?是否有一种常见的方式或者可能是使用数据库存储数据的小型 WPF 应用程序的示例?
抱歉,如果我的问题有点异端 - 根本无法将所有术语和方法分类到一个系统中,我将在应用程序创建期间遵循......
catel - How Instantiate Control Programmatically in Catel
I am trying to dynamically create and load controls into a data window.
I have tabs across the top which are different types of reports. I want to be able to create new reports without having to remember to add them to the tab control. I am trying to do this using a factory, using reflection to identify views that implement a certain interface. Once the controls are instantiated (code below) I want to wrap them in a TabItem and add them to my tab control. Here's the Factory:
Here is my MainViewDataWindow:
Here is the ViewModel:
The problem is when views are instantiated in this way, none of the Catel magic happens with initializing the ViewModel. Perhaps I'm not approaching this in the correct way, but is there a facility/helper in Catel for loading/initializing views/viewmodels programmatically?
entity-framework - 卡特模型库错误
我正在尝试按照https://catelproject.atlassian.net/wiki/display/CTL/Using+ModelBase+as+base+for+entities文档中的建议使用 ModelBase 作为 EntityBase 的基类。
我正在为 Windows 桌面 (C#)、EF v6 和 Catel v3.9 使用 VS Express 2013。
尝试构建应用程序时,我收到以下错误消息:
错误 1
Catel.Data.ModelBase<T>
已过时:不再使用泛型类,请改用非泛型基类,请ModelBase
改用。将在版本 4.0.0 中删除。
我对 Catel 和 Entity Framework 不熟悉,因此希望获得有关如何将它们一起使用的最新指导。
catel - Catel 嵌套控件中的 CancelEdit、CancelViewModel 和 HasDirtyModel
我有一个窗口,其中包含一个嵌套控件 NC1,其中包含 3 个嵌套控件 NC2 的实例。我在 NC1 上有一个“重置”按钮,它应该重置 NC1 和 NC1 中所有三个 NC2 的值。
我已经尝试了几种重置按钮的实现,但都没有成功。在所有情况下,即使数据重置,HasDirtyModel 仍然为真。
我尝试在所有三个 NC2 实例和 ((IEditableObject)nc1).CancelEdit() 上显式调用 ((IEditableObject)nc2).CancelEdit()。虽然这会完全重置,但仅在 NC1 上执行 CancelEdit 不会重置 NC2 模型。(NC1 的视图模型具有 [Model] 和 [Expose("NC2s")] 的属性,它是 NC1 模型中的 List。
调用 CancelViewModel() 也会重置数据,但仍将 HasDirtyModel 设置为 true。
所有模型都派生自 ModelBase。我应该怎么做才能导致 HasDirtyModel 变为假。
此问题与使用 Catel 3.9 的 WPF 应用程序有关