使用Caliburn.Micro在Application bar和Conductor之间进行交互的最佳方式

时间:2012-08-05 20:46:50

标签: c# windows-phone-7 mvvm caliburn.micro

我一直在尝试使用应用程序栏(当然是使用caliburn AppBarButton项目),这些项目可能会根据活动的枢轴项目更改其按钮组和操作。

项目通过屏幕视图模型表示,其父项为Conductor,其视图包含应用栏。

我真的坚持以上,基本上我无法弄清楚两件事:

1)当LoadedPivotItem被触发时,如何正确访问应用栏并在我的视图模型中绑定其按钮消息?当我添加一些按钮指定其消息属性,如Message = "DoSomething"时,点击没有任何反应。当我在XAML中这样做时,一切都很好。 OnInitialize或.ctor也可以正常工作,但实际上我需要知道选择哪个枢轴项来注入正确的按钮!

2)当按钮操作触发时,如何将其正确传递给子屏幕,以便它调用自己的方法?事件聚合器是唯一正确的方法吗?

如果可能,请给我一些代码示例 - 我在网上找不到任何内容

1 个答案:

答案 0 :(得分:2)

我自己解决了这个问题。

基本上我已经尝试了几个第三方应用程序栏并丢弃了所有这些。如果感兴趣,可以考虑一下:

他们都没有为我工作,但这只是因为我的项目中的校准。在正常情况下,它们完全适合,因为第一个允许定义ButtonsSource,第二个允许在XAML中为每个数据透视/全景项设置自定义按钮!哇!

我使用了这个链接:http://www.markermetro.com/2010/07/technical/windows-phone-7-creating-that-elusive-reusable-application-bar/,它回答了我的第一个问题。

关于第二个问题,我目前只是检查子视图模型是否处于活动状态,然后从Conductor调用其适当的方法。我知道有点脏,但在这一点上仍然比没有好。