2014-02-13 4 views
3

У меня есть ShellViewModel с несколькими подзонами (и режимами просмотра). Подвид может легко связываться с методом в ShellViewModel с Message.Attach. Он пузырится. Но могу ли я «опуститься», чтобы ShellViewModel запускал метод в sub ViewModel или даже из одного подвидного вверх, а затем вниз к другому?Caliburn Micro, Message/Action to another ViewModel

AFAIK Я могу использовать EventAggregator, но это самый элегантный способ?

+0

Вы не должны это делать. ваш основной взгляд не должен знать ваши подпункты. – Nahum

+0

И как должна панель инструментов запускать действие в другом представлении, которое не находится над ним? – ZoolWay

+0

привязываются к той же модели/команде вида. – Nahum

ответ

4

Я считаю, что нет такой вещи, как «пузырь вниз». Но, вы можете использовать Bind.ModelWithoutContext для перемещения цели действия к вашему ребенку ViewModel:

<Button cal:Message.Attach="DoIt" cal:Bind.ModelWithoutContext="{Binding Path=ChildViewModel}" Content="Test It!"/> 

Существует «некоторые» документация по https://caliburnmicro.codeplex.com/wikipage?title=All%20About%20Actions. Надеюсь, это поможет вам.

+0

Для «просто вниз» это прекрасно работает. Думаю, для более сложных сценариев «EventAggregator» - это путь. Благодаря! – ZoolWay

Смежные вопросы