问题标签 [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 - Catel 应用程序初始化
我正在调查卡特。我开始关注 WPF 开发人员入门。我使用模板创建初始项目并运行它。一切都很好。
然后我详细看一下生成的源文件。我看到对 DataWindow、StyleHelper 和 ViewModelBase 的引用。我在调试器中运行并观察 Catel 调试输出,步进以便我可以看到事情何时发生。
这一切都很神奇。
视图管理器以某种方式运行并注册 MainWindow。并调用 ViewModelFactory 来创建 MainWindowViewModel,并设置 MainWindow DataContext。
这一切是如何发生的?我缺少为我整理应用程序启动时事件序列的文档。我不愿意相信它,也不愿意在不知道从哪里开始的情况下潜入庞大的代码库。我已阅读 CodeProject 文章和文档的介绍部分。
这是否以某种方式摆脱了行为?它们是如何被调用的?我只是找不到让我开始前进的线索。
旁白:我看 Catel 是因为我发现自己为一个重要的 MVVM 应用程序实施了大量的管道,并决定其他人已经解决了这个问题。
感谢任何线索。(谢谢,Geert。这是一项重要的工作。)
-赖利。
c# - Catel MVVM:如何在窗口之间传递数据
大家好,我正在努力解决在 Catel MVVM 模型中的视图模型之间发送数据的过程。我有一个按钮,单击它我想打开一个新窗口并将一些数据(对象)发送到新打开的窗口。但是我自己无法解决这个问题,你能帮帮我吗?
在我的第一个视图模型中,我有:
就我而言,我想从“SelectedStop”方法发送结果,我该怎么做?
catel - Catel 4 (Prerelease), ReSharper 8.2, .NET 4.5
ReSharper 8.2 indicates lots of errors in my Catel 4 viewmodels in VS 2012 Update 4 when targeting .NET 4.5. Catel 4.0.0-unstable0463 is installed.
In every VM, derived from ViewModelBase, Re# gives me "Cannot resolve symbol" on every occurrence of GetValue, SetValue, and RegisterProperty. I get the same error when trying to reference WindowLogic.PropertyChanged.
Re# errors go away when I select .NET 4.5.1.
Project was created for 4.5, and NuGet used to install packages.
.NET 4.0 is also clean after re-installing the proper version of Catel.
Thanks.
-reilly.
catel - 使用 Catel 4 的 WPF 树视图
谁能指导我使用 Catel 4 和 WPF TreeView 控件?我正在尝试创建类似于 VS 解决方案资源管理器的东西。我为树的每一层创建了模型和虚拟机。
当我添加一个分层数据模板 (HDT) 并使用 VM 类型作为 DataType 参数时,我会得到一个显示顶级集合成员类型的树。也就是说,WPF 无法将 ItemsSource 集合类型与我的 HDT 匹配。如果我将 HDT 更改为使用模型类型,TreeView 会正常运行,但现在我的虚拟机没有被使用。
谢谢。
-赖利。
c# - 类型带有数据合同名称预计不会
我在桌面 WPF 应用程序中使用 Catel 框架,当我尝试将模型保存到文件时,我收到以下错误。
我尝试将 KnownType 和 ServiceKnownType 标签添加到模型中,但我得到:
或者
而且我还尝试了在 ViewModel 中预热 SerializationFactory:
但没有任何改变。
有人有什么建议吗?此时我能做什么?
谢谢索尔·伊达尔戈。
wpf - 在 xmlnsdefinition 中使用 ViewModelToViewConverter 加载 catel 视图
目前我们有一个 WPF userControl 库,其中的命名空间使用
陈述。当我们尝试在引用此程序集的 WPF 应用程序中使用此库中的控件时,使用 ContentPresenter
我们总是得到一个
我们做错了什么 - 或者如果它们在 XmlnsDefinition 中,catel 是否没有设计为使用 ViewModelToViewConverter 显示控件?
c# - Catel MVVM 如何在一个 ListBox 中设置两个不同的 Item Source
我正在尝试创建一个包含扩展器列表的视图,当我按下以扩展其中一个时,我想要一个来自要加载的不同项目源的名称列表。到目前为止,我得到的是当我将项目源设置为 LineRouteCollection 以设置扩展器的标题时,即使我绑定扩展器以显示来自 AllStopsCollection 的名称,绑定“名称”显示来自 LineRouteCollection 源的名称而不是名称根据我的需要从 AllStopsCollection 中获取。你能看看我的代码并告诉我我做错了什么吗?
编辑:
在我的视图模型中,我像这样加载可观察的集合(AllStopsCollection 和 LineRouteCollection):
我在类的构造函数中用数据填充集合。我正在正确加载数据,我可以看到它,但在展开器展开后它不会出现在文本框中。
catel - StackGrid WPF 设计器问题
当我使用 catels StackGrid 时,设计器会在第一个单元格中显示所有内容。
编译项目后,网格在设计器中呈现良好。
有没有其他方法可以强制 wpf 设计器在不重新编译的情况下进行更新?
catel - 删除 Memento 中的重做操作?
在我的应用程序中,用户可以向 DataGrid 添加行并更改每行的属性。用户还可以删除行。撤消和重做这些操作可以正常工作,但是如果用户添加行,比如三行,修改一些值,然后撤消回只有一行的位置,然后添加新行,那么能够重做撤消似乎是不合逻辑的(在最后添加的行之后出现新行)。因此,当用户添加新行时,我想删除所有重做。
我尝试使用 RedoBatches 获取所有重做的枚举,然后对每个重做执行清除以删除它们,但重做按钮仍然处于活动状态,并且在按下时将重做这些操作。
这是尝试实现这一目标的正确方法,还是不可能,或者我应该以不同的方式做?
catel - 应该如何在 Catel 中实现具有撤消/重做支持的更改状态对话框?
使用对话框时,我无法让 Undo 和 Redo 正常运行。
我有一个简单的模型,其属性指示对象的状态(running
, paused
, stopped
),可以通过对话框进行更改。发生的情况是,我的撤消队列中似乎没有执行任何操作,或者撤消将对象恢复到中间状态。
模型对象在构造函数中用 memento 注册。该对话框具有三个单选按钮,每个按钮代表三种不同状态之一。每个单选按钮都绑定到一个命令。每个命令都会更改属性。我尝试了两种不同的方法,每个命令直接在对象中设置属性,或者每个命令在调用时为视图模型设置一个实例变量,然后我使用保存事件来修改对象。
如果使用第一种方法,如果用户在单击对话框中的“确定”之前单击了多个单选按钮,则每个属性更改都将放在“撤消”队列中。试图通过将整个对话框包装成一个批处理来解决这个问题,但这会导致状态更改撤消,对象将恢复到最后一个之前的状态,即如果属性设置为stopped
在对话框打开并且用户按下之前暂停单选按钮,然后启动一个,最后确定,撤消会将属性设置为paused
而不是预期的stopped
.
如果使用第二种方法,用户打开对话框,将状态更改为paused
,在对话框中单击“确定”,撤消/重做的行为与预期相同,但如果再次打开对话框并选择“取消”,则会向“撤消”队列添加另一个操作,即用户必须单击 Undo 两次才能回到初始stopped
状态。
所以我的问题是如何正确实施以获得预期的行为;每个对话交互都可以撤消,而不是对话中的每个交互?
这是 ViewModel 的代码: