【问题标题】:Caliburn Micro with Xaml.Behaviors.Wpf, Unable to include actionmessage in event trigger带有 Xaml.Behaviors.Wpf 的 Caliburn Micro,无法在事件触发器中包含操作消息
【发布时间】:2020-02-24 09:40:35
【问题描述】:

我正在将旧的 System.Windows.Interactivity nuget 包切换到 Microsoft.Xaml.Behaviors.Wpf . 这会导致以下编译错误

<b:Interaction.Triggers>
  <b:EventTrigger EventName="Click">
     <cal:ActionMessage MethodName="Start"/>
  </b:EventTrigger>
</b:Interaction.Triggers>

其中 ActionMessage 是 Caliburn.Micro.ActionMessage。

我得到的错误如下

错误 XDG0048 无法将指定的值分配给集合。应为以下类型:“TriggerAction”。

如何在保持功能的同时进行升级?

【问题讨论】:

  • 检查您是否使用支持的Caliburn Micro 版本要求Microsoft.Xaml.Behaviors.Wpf。或者尝试使用 &lt;Button cal:Message.Attach="[Event MouseEnter] = [Action Save]"&gt; 之类的简短语法
  • @user1672994 我更新到最新的 Caliburn.Micro,什么也没发生。从我在github上看到的,还不支持。但是当你说切换到按钮语法时,那会取代 actionmessage 吗?那个xaml会去哪里?我是后端人员
  • 根据这个commit 和描述,Microsoft.Xaml.Behaviors.Wpf 已经添加并且存在于4.0.109-alpha 版本的CM 中。您可以使用myget feed 获取 alpha 版本
  • @pavelanikhouski Alpha 版。不稳定,还没有在 Nuget 中
  • @JohnDemetriou 是的,你是对的,它还不稳定。您可以使用稳定的 3.2.0 版本或等待稳定的 4.x 版本的 CM :)

标签: c# wpf xaml nuget caliburn.micro


【解决方案1】:

鉴于Caliburn.Micro 目前不支持来自微软的最新Microsoft.Behaviors.Xaml.Wpf Nuget 包,直到版本 4,在撰写本文时处于 alpha 阶段。我对此的解决方案是使用Microsoft.Behaviors.Xaml.Wpf 中的CallMethodAction,然后用InvokeCommandAction 替换它,因为它绑定的是命令而不是方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    相关资源
    最近更新 更多