我正在尝试为我认为 CM 不支持开箱即用的附加事件创建一个操作。
这个问题/答案显示了如何做到这一点
使用带有 caliburn 微 Message.Attach 的附加事件
但它需要使用长的 CM ActionMessage 语法,但是,当我尝试这样做时,我得到一个“ActionMessage 不存在于 XML 命名空间中”,其中 blah 是 CM 命名空间。
所有示例也显示了这种语法;目前,我刚刚将代码放入将 DataContext 转换为 ViewModel 类型并调用适当方法的视图中(尽管我不喜欢这种方法,因为它将视图与 VM 耦合,并且与其余部分不一致应用程序)
任何人都知道为什么我看不到 ActionMessage?
例如
<i:Interaction.Triggers>
<Helpers:RoutedEventTrigger RoutedEvent="Helpers:DataChanging.Changing">
<!-- this line throws the error -->
<cal:ActionMessage MethodName="SelectedDataChanged">
<cal:Parameter Value="$eventargs" />
</cal:ActionMessage>
</Helpers:RoutedEventTrigger>
</i:Interaction.Triggers>
我正在使用 SL5 和 CM 的 SL5 组件,但没有乐趣......
有趣的是,如果我尝试在其他地方使用“ActionMessage”,它似乎得到了正确解决,但当然在我想要的地方之外它不是很有用!
更新:
这是视图命名空间定义
xmlns:cal="http://www.caliburnproject.org"
我已经尝试过实际的程序集限定名称空间和其他组合,都存在相同的问题