Вопрос не помечен mvvm
(пока), но я предполагаю его, поскольку вы упоминаете ViewModel.Итак, для начала давайте согласимся, что ViewModels обрабатывает команды, а не элементы управления.Если элемент управления хочет ответить на выполняемую команду, предоставьте подходящее событие CommandExecuted
, к которому элемент управления (представление) может прикрепить обработчик.
Однако есть еще одно неизвестное, которое я не могу предположить вслепую:
Считаете ли вы само собой разумеющимся, что пользовательские элементы управления A и B существуют одновременно?Если да, то очень простое и низкотехнологичное решение состояло бы в том, чтобы поддерживать ссылки на обе модели ViewModel на некотором уровне (возможно, ViewModel для самого Window
?) И «выдавать» команду там, где отправка в ViewModelБ произойдет.Если нет (в этом случае элемент управления B может не существовать), каково желаемое поведение?
Учитывая предоставленную вами информацию, я бы предложил использовать реализацию шаблона Aggregator / Mediator в вашей среде MVVM.,Например, Prism имеет EventAggregator ;MVVM Light имеет Messenger ;и т.д.