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

performance - 具有多个列表项的 Catel 性能

我对 Catel ViewModels 的性能有疑问。

我有一个包含约 300 个项目的 ListView。每个项目都有自己的 UserControl 和 ViewModel。ViewModel 具有 Model 属性,它是构造函数的参数。

创建 300 个 ViewModel 至少需要约 10 秒,这并不复杂。

是普遍问题吗?我应该如何处理?

0 投票
1 回答
918 浏览

c# - 未创建 Catel ViewModel

我有一个 calel:Usercontrol ,它将是一个带有覆盖 GetViewModelType() 方法的侧边栏。

另外我有dependencyProperty 来设置模型项。

问题是我的 ViewModel 从未初始化。

我不知道为什么,但其他控件视图模型已正确初始化。

我就是这样做的:

在父视图中:

我的侧边栏控制代码在后面:

还有我的 SideBarViewModel

你能解释一下它应该如何工作吗?我对 ListBox 项目及其工作做了同样的事情。

编辑:在日志中我可以看到:

0 投票
2 回答
1197 浏览

c# - ShowDialog 中的 Catel async await 命令 - 死锁

使用库Сatel 最新版本(3.8.1 beta)。

如何从对话窗口使用 TAP 方法?

例子。在主 ViewModel 中调用方法

在 LoginWindowViewModel 我有命令(也可以尝试 AsynchronousCommand),它被称为方法

只有在关闭对话框窗口时,我才从等待的方法中得到结果。锁出现在线

var uow = new UnitOfWork()

ConfigureAwait(false) - 无助于解决问题

当我删除 UnitOfWork - 方法有效

当我将方法代码更改为此 var d = TypeFactory.Default.CreateInstanceWithParameters(); 返回 5;

阻塞也在TypeFactory这一行重现...

根据服务,Catel 不允许出现在对话框中

0 投票
1 回答
51 浏览

catel - Wrong View shown (Catel)

I'm trying to open a View with a ViewModel from my MainWindowViewModel. It works, but all I get is a blank window. It binds the correct title but every other control is missing.

Did anyone have the same problem and found a solution?

0 投票
1 回答
389 浏览

c# - Catel 是否与 WPF 导航应用程序一起工作?

我正在开发一个大型 WPF 应用程序,其中整个 UI 基于 Pages 而不是 Windows。

The application is 50% MVVM / 50% MVCB (Model View Code Behind)

所以,我计划将它全部迁移到 MVVM 并且我正在评估 Catel 作为一个框架。当前控制 MVVM 的手工构建框架还不错,但并没有增加多少生产力价值。鉴于转换超过 100 个屏幕涉及大量工作,我希望节省大量重复性工作并使其美观且一致,因此我正在评估框架。

我想我需要一段时间才能理解 Catel,所以我想知道应用程序使用 Pages 的事实是否是一个大问题?

0 投票
0 回答
1076 浏览

c# - 如何解决 WCF 数据服务客户端中的“类型 'full.name' 没有可设置的属性”?

我正在使用带有自定义实体类的 WCF Data Services 5.6,并成功地将数据读入从Catel 的 ModelBase继承的实体中。但是,当我尝试执行插入或更新时,数据服务使用的反射在 ModelBase 的只读属性之一“ValidationContext”上失败,该属性实现了一个没有设置器的接口。ValidationContext 具有在 Catel 中定义的 [XmlIgnore] 和 [Browsable(false)] 属性。

我尝试删除Configurations.RequestPipeline.OnEntryStarting 和 OnEntryEnding 钩子中的属性,也尝试通过在 WritingEntry 事件中编辑 xml的(旧学校)方法。但是在任何这些事件被触发之前就会出现以下异常。

因此,看起来数据服务客户端在尝试序列化之前正在反映类型,并在那里吐出错误,因为它无法将 IValidationContext 解释为模型中的有效实体类型。

我成功测试的一种解决方法是用非公共版本有效地替换公共 ModelBase 属性:

但这显然是不可接受的,因为那样我就不能在其他地方使用 ValidationContext 了。

我相信如果您要在任何实体的对应部分类代码中添加类似这样的任何属性,那么通过“添加服务引用”生成的代理也会出现问题。

有什么建议吗?我们可以替换/覆盖任何相关的序列化器方法吗?


“Catel.Data.IValidationContext”类型没有可设置的属性。来源: Microsoft.Data.Services.Client at System.Data.Services.Client.ClientEdmModel.GetOrCreateEdmType(Type type) at System.Data.Services.Client.Metadata.ClientTypeUtil.TypeIsEntity(Type t, ClientEdmModel model) at System.Data .Services.Client.ODataPropertyConverter.TryConvertPropertyValue(ClientPropertyAnnotation 属性,对象 propertyValue,HashSet1 visitedComplexTypeObjects, ODataValue& odataValue) at System.Data.Services.Client.ODataPropertyConverter.PopulateProperties(Object resource, String serverTypeName, IEnumerableSystem.Data.Services.Client.BaseSaveResult.CreateRequestData(EntityDescriptor entityDescriptor, ODataRequestMessageWrapper requestMessage) 处 System.Data.Services.Client.BaseSaveResult.CreateRequestData(EntityDescriptor entityDescriptor, ODataRequestMessageWrapper requestMessage) 处的 1 个属性) .Services.Client.BaseSaveResult.CreateChangeData(Int32 index, ODataRequestMessageWrapper requestMessage) 在 System.Data.Services.Client.BatchSaveResult.BatchRequest()在 System.Data.Services.Client.BatchSaveResult.BatchRequest()
在 System.Data.Services.Client.BatchSaveResult.GenerateBatchRequest() 在 System.Data.Services。 System.Data.Services.Client.DataServiceContext.SaveChanges() 处的 Client.DataServiceContext.SaveChanges(SaveChangesOptions 选项)

0 投票
1 回答
111 浏览

wpf - 将更改应用于主/详细场景中的模型

我正在使用 Catel 开发一个应用程序,该应用程序具有类似于Catel.Examples.WPF.MasterDetail. 如果我在 Details 视图中更改当前模型的属性,然后在 Master 视图中切换当前元素,那么所有更改都将丢失。

当 Details 视图的 DataContext 切换时,如何更改此行为以保留模型中的所有更改?请注意,无法Apply在详细信息视图中添加按钮以显式应用更改。

0 投票
1 回答
99 浏览

c# - Catel ModelBase.Load 中是否支持 XmlRoot、XmlAttribute 和 XmlElement?

我遇到了来自 ModelBase 的派生类的问题。我想对它们进行序列化和反序列化,但是我也想使用 XmlAttribute 和 XmlElement 将 xml 属性映射到属性。现在,我似乎无法让它与任何从 ModelBase 派生的类一起工作。

  • 当我使用标准 XmlSerialize 时,我没有得到任何值基础
  • 如果我删除基类并使用 XmlSerialiez,一切正常
  • 使用 ModelBase.Load<>() 也不起作用

任何想法?

0 投票
2 回答
1130 浏览

wpf - 在 Catel MVVM WPF 中使用 TabControl 时的性能

我使用 aCatel作为我的主要 MVVM 框架。在当前应用程序中,我将 UI 拆分为多个选项卡。每个选项卡都在加载适当的View. 虽然我得到了预期的结果,但我注意到通过更改每个选项卡几乎需要几1~3秒钟才能显示视图。有没有办法加快这个过程?

0 投票
1 回答
68 浏览

c# - 与 CanExecute 类似的方法,但用于属性而不是命令?

是否可以选择在我的 ViewModel 中为属性设置 CanChange 方法,以根据 CanChange 方法的返回值自动启用和禁用输入字段(RadioButton、TextBox、...)?

目前这对于带有 canExecute 委托的 Command 是可能的,它根据 canExecute 方法的返回值启用/禁用按钮。

有这样的选择可以为我节省很多代码。

提前致谢!