Caliburn Micro,对另一个ViewModel的消息/操作

Zoo*_*Way 4 .net mvvm caliburn.micro

我有一个带有多个子视图(和视图模型)的ShellViewModel。子视图可以使用Message.Attach轻松绑定到ShellViewModel中的方法。起泡。但是我可以“冒泡”,以便ShellViewModel在子ViewModel中甚至在一个子视图中触发一个方法,然后在另一个子视图中触发吗?

AFAIK我可以使用EventAggregator,但这是最优雅的方法吗?

小智 5

我相信,没有“冒泡”之类的东西。但是,您可以使用Bind.ModelWithoutContext将操作目标移至子ViewModel:

<Button cal:Message.Attach="DoIt" cal:Bind.ModelWithoutContext="{Binding Path=ChildViewModel}" Content="Test It!"/>
Run Code Online (Sandbox Code Playgroud)

https://caliburnmicro.codeplex.com/wikipage?title=All%20About%20Actions上有“一些”文档。希望对您有帮助。