我有Conductor<MyItem>.Collection.OneActive
ViewModel,并尝试将应用栏按钮附加到MyItem
cal:Action.TargetWithoutContext="{ Binding ActiveItem }"
的方法。我的观点是一个Pivot,如果有人想知道为什么我试图将应用程序栏附加到子ViewModel。编译器说“Property'TargetWithoutContext'不能附加到'AppBarButton'类型的元素。”虽然它适用于视图中其他地方的普通按钮。
我怎样才能让它发挥作用?或者可能有任何解决方法?
答案 0 :(得分:2)
Caliburn.Micro提供的AppBar功能是一个黑客,因为底层框架存在缺陷,不允许任意绑定。不幸的是,我们无法支持TargetWithoutContext。对于AppBars,目标将始终是页面的视图模型,并且只能将消息定向到它。如果页面的视图模型是指挥,并且您希望孩子接收消息,您可以让指挥接收它,然后将其转发到其ActiveItem。
答案 1 :(得分:1)
不幸的是,ApplicationBar不是bindalbe,因为它不是Silverlight Framework的一部分。 您只能通过使用ApplicationBar的页面的代码隐藏文件与应用程序进行交互。
您必须注册Click事件并从代码Behind调用Action。
答案 2 :(得分:1)
WP7 ApplicationBar只是本机shell的简单包装器,根本不支持数据绑定。但是,有几种可用的解决方法。 http://caliburnmicro.codeplex.com/discussions/232742