问题标签 [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.

0 投票
1 回答
138 浏览

c# - 在 Catel 的 ViewModel 的构造函数中传递两个项目

可以将 UserControl 的 ViewModel 构造函数设置为使用视图的 DataContext 和另一个依赖注入来触发吗?

我希望能够将 UserControl 的数据上下文(在它的父视图中设置)和数据库服务获取到 ViewModel 中。

想不通:

这有效:

这有效:

0 投票
1 回答
629 浏览

catel - 如何防止在 Catel 中关闭 ViewModel(以及取消模型)

我需要防止 ViewModel 关闭并防止模型编辑被取消。我尝试在 ViewModel 中覆盖 OnClosing,但该事件来得太晚了。它是在取消模型编辑之后出现的。(对我来说似乎是奇怪的事件顺序。)

我发现了一个旧的问题和答案,说要使用 OnViewModelCanceling,但是该方法在当前版本中不作为可覆盖的方法存在。

我找到了 OnViewModelEvent,但别名,它不会被我的 ViewModel 上的任何事件调用。

那么,在 ViewModel 上覆盖 Cancel 并返回 false 是正确的解决方案,还是必须在 ViewModel 上注册 Canceling 事件?

我尝试过使用 Cancel 的覆盖,这样做适用于简单的 ViewModel。但是,如果当前 ViewModel 具有 ViewModel 的嵌套控件,并且它们也从 Cancel 返回 false,则外部 ViewModel 甚至不会在 Cancel 处出现裂缝。(这是有道理的。)我的问题是,有时我确实想尊重 Cancel 并且外部 ViewModel 知道这一点,但嵌套的 ViewModel 不知道。我知道我可以通过多种方式解决这个问题,但我想知道在我解决这个新问题之前是否有更好的方法来防止取消模型的编辑。

这可能违反每个问题一个问题的规则,但它是极其密切相关的。我还需要知道如何允许 ViewModel 关闭,但不要对其模型执行 EndEdit(或 CancelEdit)。

使用 Catel 3.9 的 WPF 应用程序

0 投票
2 回答
179 浏览

wpf - 使用 Catel 创建多个 WPF 应用程序

我已经使用 WPF 和 Catel 开始了一个新项目,我希望能够拥有多个没有所有权的窗口。我已经能够创建一个带有标准窗口并创建对话框的应用程序。我想找到有关如何创建窗口然后关闭当前窗口的示例或教程。

例子:

Window1 -> 选择打开 Window2 按钮 -> 打开 Window2 -> 关闭 Window1

谢谢

0 投票
1 回答
79 浏览

mvvm - 更改 ObservableCollection 中项目的值

典型的客户发票场景:

包含 LineItems 的视图模型中的 ObservableCollection。该视图列出了 LineItems,并在每行的末尾显示了计算出的 LineTotal。页面底部显示了一个 GrandTotal。

如果用户对数量进行了更改,以更新页面上的其他项目,我在绑定到数量的 TextBox 上使用 EventToCommand 触发器。调用该命令时,我手动重新计算行总计和发票总计以反映更改。

有没有更好的方法来反映用户对数量框所做的更改?一种强制“重新绑定”刷新页面的方法?Fody 或 Catel 有什么可以解决这个问题的吗?

0 投票
2 回答
234 浏览

silverlight - 如何在调试时单步执行 Catel 代码?

在我的项目中将 Catel 实现添加到我的一个视图(mainPage)后,我遇到了一个导致我的 Silverlight 项目崩溃的错误。我唯一的迹象是:“Catel.MVVM 中发生了‘System.NullReferenceException’类型的第一次机会异常”(就在设置 RootVisual 之后~) - 我找不到我做错了什么,因为我正在计划与 Catel 建立长期关系找到任何东西):

  1. 下载了 catel 3.9 源文件(与我的 nuget 包相同)并尝试构建它.. 失败并出现此错误:E:\Dev\Catel-3.9.0\src\Catel.Core\Catel.Core.SL5\Fody.targets( 51,5):错误 MSB4036:未找到“Fody.WeavingTask”任务。检查以下内容: 1.) 项目文件中的任务名称与任务类的名称相同。2.) 任务类是“公共的”并且实现了 Microsoft.Build.Framework.ITask 接口。3.) 在项目文件或位于“E:\WINDOWS\Microsoft.NET\Framework\v4.0.30319”目录的 *.tasks 文件中正确声明了任务。- 试图寻找和找出原因并克服它,导致我无处可去。:(

  2. 我已经按照 Catel 文档中的“逐步执行代码”指令进行操作,但注意到确实发生了(我使用的是 VS2010 ..这是一个问题吗??)

  3. 我在以下网址阅读了这篇文章和 readme.md:https://github.com/GeertvanHorrik/GitHubLink关于使用 GitHubLink 帮助您在调试时单步执行 Catel 代码。我从https://github.com/GeertvanHorrik/GitHubLink/releases/tag/1.3.0下载了版本 GitHubLink 1.3.0 ...但即使只使用 githublink.exe -help 标志运行它也会引发异常..

  4. 我下载了 Githublink-master 源文件但加载了 0 个项目(GithubLink 项目文件与当前版本的 VS 不兼容 - 我使用的是 VS2010)

谁能帮我遮光或:

  • 克服我收到的 catel (no.1) 的构建错误
  • 指导我如何设置和步入 catel ?
  • 共享 Catel 库的 pdb 文件
0 投票
1 回答
334 浏览

catel - catel 用户控件基础构造函数抛出 TypeNotRegisteredException

我正在使用 catel 4 预发行版,只是试图将我的用户控件更改为 catel 用户控件,但由于某种原因,catel 无法传递 catel 基本构造函数并抛出此 TypeNotRegisteredException .. 有人可以告诉我我是什么' m 通过锁定调用堆栈而丢失或做错了?

(我保持调试会话打开,因此我可以提供所需的任何其他详细信息或参数)

提前致谢

ps 如果可以的话,我还有一个问题:我从 nuget 中提取的 catel 4 pre-release beta 的 git 分支名称是什么..(我找不到任何类似于该版本的名称,master 是 3.9 并开发代码似乎与拉出的 pdb 有点不一致..更多关于我设置调试为我工作的信息

新的

@geert

请求的类型是 Catel.MVVM.IViewModelFactory 。(我似乎无法从中做出任何事情。)回到堆栈中的 CreateServiceInstance 框架

如上所述(内联),TypeFactory.CreateInstance 使用 ImplementingType = {MyApp.CustomViewModelFactory} 调用,但返回 null(实例)..

我打电话

我的application_startup中,这是我的实现..但我似乎无法从所有这些中做出一些事情,我做错了什么?请帮忙(这可能是一个错误吗?)

}

ps
我有:LogManager.AddDebugListener(); ( + LogManager.IsDebugEnabled = true;) 但我在输出窗口中看不到任何 catel 日志记录 (vs2012+vs2010)

另一件事..从UserControl“进入” ..进入UserControlLogic:base ..-只是“直接”跳转到那个异常..但是调用堆栈是上面写的(我是否错过了太多睡眠时间%-)

0 投票
1 回答
72 浏览

attributes - Catel ServiceLocatorRegistration 属性获取编译错误信息

我尝试使用 Catel 框架创建自动注册,

但是在编译这段代码时我得到了这个错误。属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式

Catel ServiceLocatorRegistration 属性是否需要我不知道的东西?

帮助!!

0 投票
1 回答
237 浏览

c# - 如何在 catel 3.9.0+ 中使用 catel:WindowBehavior 和自定义窗口

我想创建一个基于 infragistics XamRibbonWindow 但具有 catel 功能的窗口。在catel 文档中,我找到了有关如何使用 catel:WindowBehavior 进行归档的信息。

看起来太容易了吧?嗯,这真的是你所要做的

但是当我将此行为添加到标准 wpf 窗口时,会引发异常。它告诉我窗口类必须实现 catel:IView 才能工作。

所以我进一步寻找并找到了另一个样本。但是接口 IDataWindow 在 v3.9 中比在此示例中具有更多的事件和属性。

所以我决定下载高级示例项目以进行进一步研究。但是这个目前是基于 catel v3.8 的,它与 3.9 不同。

0 投票
1 回答
301 浏览

c# - “Catel.IoC.IServiceLocator”不包含“实例”的定义

我对 .NET 开发和 Catel 还很陌生,但正在研究一个项目来学习它。目前原始开发人员不在场,所以我会在这里试试运气。

要实现撤消/重做,Catel 的 Memento 模式支持似乎很棒,所以尝试一下,但我在获取 MementoService 的实例时遇到了问题。当我在我的 ViewModel 中这样做时: var mementoService = ServiceLocator.Instance.ResolveType<IMementoService>(); 我得到: 'Catel.IoC.IServiceLocator' does not contain a definition for 'Instance' and no extension method 'Instance' accepting a first argument of type 'Catel.IoC.IServiceLocator' could be found (are you missing a using directive or an assembly reference?)

我注意到当我在我的模型中做同样的事情时,虽然我没有遇到这个问题。似乎很奇怪,我需要不同的方法来获取服务实例,具体取决于我尝试获取它的位置。

我不明白我做错了什么。NuGet 包管理器控制台告诉我,我安装了 Catel.Extensions.Memento 3.7 以及 Catel.Core、Catel.MVVM 和 Catel.Extensions.Controls 3.7。我正在使用带有 .NET 4.0 的 Visual Studio 2013。

0 投票
0 回答
85 浏览

c# - Catel project slow to build

I am creating very simple WPF .NET4 project using Catel Project Template in VS2013. I am using pre-release builds. As per readme I am adding Catel.Extensions.Controls. Immidiately I am trying to build and get error on RegisterDebugListener(), which I comment out. However, my main issue is that simple blank demo (without any controls) is taking over 20sec to compile? Is this normal behaviour?