gpt4 book ai didi

silverlight - (Caliburn Micro) 将 ActionMessage 方法名映射到 ViewModel 的子对象

转载 作者:行者123 更新时间:2023-12-05 00:03:56 32 4
gpt4 key购买 nike

我想将 caliburn.micro actionmessage 的方法名属性绑定(bind)到 ViewModel 的子对象上的方法。

我想象它应该如何工作:

<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="MenuItemX.Clicked" />
</i:EventTrigger>
</i:Interaction.Triggers>

这里的问题是方法名并不直接存在于 View 模型上,而是存在于 View 模型的子对象上。

所以在这种情况下,我想绑定(bind)到:
ViewModel.MenuItemX.Clicked()

当前的解决方法是在我的 View 模型上有一个传递方法,它有异味。

最佳答案

您可以使用 cal:Action.TargetWithoutContext 设置操作的实际目标 (MenuItemX)附属属性(property):

<Button cal:Action.TargetWithoutContext="{Binding MenuItemX}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="Clicked" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>

或更短的语法:
<Button cal:Action.TargetWithoutContext="{Binding MenuItemX}" 
cal:Message.Attach="Clicked" />

关于silverlight - (Caliburn Micro) 将 ActionMessage 方法名映射到 ViewModel 的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6263039/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com