我怎么想象它应该工作:
<i:Interaction.Triggers> <i:EventTrigger Eventname="Click"> <cal:ActionMessage Methodname="MenuItemX.Clicked" /> </i:EventTrigger></i:Interaction.Triggers>
这里的问题是methodname不直接存在于viewmodel上,而是存在于viewmodel的子对象上.
所以在这种情况下我想绑定到:
viewmodel.MenuItemX.Clicked()
目前的解决方法是在我的viewmodel上使用pass-through方法.
解决方法 您可以使用cal:Action.TargetWithoutContext附加属性设置动作的实际目标(MenuItemX):<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的子对象全部内容,希望文章能够帮你解决silverlight – (Caliburn Micro)将ActionMessage方法名映射到ViewModel的子对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)