将TargetWithoutContext附加到AppBarButton

时间:2011-08-05 11:24:33

标签: windows-phone-7 caliburn.micro

我有Conductor<MyItem>.Collection.OneActive ViewModel,并尝试将应用栏按钮附加到MyItem cal:Action.TargetWithoutContext="{ Binding ActiveItem }"的方法。我的观点是一个Pivot,如果有人想知道为什么我试图将应用程序栏附加到子ViewModel。编译器说“Property'TargetWithoutContext'不能附加到'AppBarButton'类型的元素。”虽然它适用于视图中其他地方的普通按钮。

我怎样才能让它发挥作用?或者可能有任何解决方法?

3 个答案:

答案 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