1

我目前正在开发一个需要同一视图模型的多个视图的项目。让我这样描述:

  • ViewModel:CustomerDetailsViewModel.cs(继承自 Screen 类)
  • 视图:CustomerDetails.cs(此视图将 CustomerDetailsViewModel 作为数据上下文,并由 Caliburn.Micro 自动设置)
  • 视图:CustomerInfo.cs(现在这是我要共享 CustomerDetailsViewModel 的视图,其中可能已经通过 CustomerDetails 视图修改了一些数据)

我目前正在使用 NavigationService 导航到 CustomerInfo 视图。有没有办法将当前视图模型的引用传递给用户在 caliburn.micro 中导航到的视图?

提前致谢

idev

4

2 回答 2

2

使用附加属性 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 ”部分。

于 2011-05-04T16:35:24.733 回答
1

向 App.xaml.cs 添加一个或两个属性。您在此处输入的内容将在应用程序的整个生命周期中持续存在(请记住,墓碑会导致此属性的值丢失)。如果要传递 ViewModel,则将 App.xaml.cs 中的关联属性设置为视图模型,然后在新页面加载时从该相同属性读取它。

于 2011-04-18T12:25:02.237 回答