使用WP7中的Caliburn.Micro将视图模型共享到多个视图
问题描述:
我目前正在研究需要同一视图模型的多个视图的项目。让我描述是这样的:使用WP7中的Caliburn.Micro将视图模型共享到多个视图
- 视图模型:CustomerDetailsViewModel.cs(从Screen类继承)
- 查看:CustomerDetails.cs(这个观点有CustomerDetailsViewModel为的datacontext和这套自动Caliburn.Micro)
- 查看:CustomerInfo.cs(现在,这是我想分享CustomerDetailsViewModel认为,这可能通过为CustomerDetails视图已经修饰的一些数据)
我目前使用的NavigationService导航至CustomerInfo视图。有没有办法将当前视图模型的引用传递给用户在caliburn.micro中导航的视图?
在此先感谢
IDEV
答
一个或两个属性添加到您的App.xaml.cs.你在这里放置的任何东西都会在应用程序的整个生命周期中持续存在(请记住,墓碑化将导致该属性的价值被丢失)。如果您想传递一个ViewModel,然后将App.xaml.cs中的相关属性传递给视图模型,然后在新页面加载时将它从相同的属性中读取。
答
使用附加属性cal:Bind.Model =“{Binding}”将视图绑定到视图模型。 请参阅http://caliburnmicro.codeplex.com/wikipage?title=All%20About%20Actions“查看第一个”部分。
或者,您还可以查看cal:View.Context =“MyContext”附加属性,如下所述:http://caliburnmicro.codeplex.com/wikipage?title=Screens%2c%20Conductors%20and%20Composition“通过相同ViewModel的多个视图”部分。