Вот сценарий:
У меня есть пользовательский элемент управления поиском заказов, который позволяет пользователю просматривать заказы и выбирать один. В пользовательский элемент управления поиском заказов встроен пользовательский элемент управления «Детали заказа», который не отображается до тех пор, пока не выбран заказ, и в этот момент он отображает детали заказа.
Вопрос в том, как передать выбранный OrderID в пользовательский элемент управления сведений о заказе и получить загружаемый заказ (т. Е. Установить свойство CurrentOrderID viewmodel для сведений о заказе и вызвать его метод LoadOrder) из пользовательского элемента управления поиском заказа, в дружественный MVVM-способ (т. е. без ссылок кода на элементы управления любого пользовательского элемента управления)
Было бы просто, если бы я мог ссылаться на активный экземпляр модели представления детали заказа из модели просмотра поиска заказа, но я не вижу, как это сделать.
Мой текущий подход заключается в том, чтобы сделать свойство CurrentOrderID статическим (чтобы я мог установить его из view-модели просмотра заказа без какой-либо ссылки на активный экземпляр view-модели детали заказа) и иметь таймер с интервалом 1 с, работающим в деталях заказа. viewmodel проверяет изменения в свойстве CurrentOrderID. Однако это имеет неприятный запах и некоторые нежелательные побочные эффекты!