#.net #silverlight #mvvm #focus #mvvm-light
#.net #silverlight #mvvm #фокус #mvvm-light
Вопрос:
Я использую Silverlight 4 с MVVM light. Допустим, у меня есть MainView с двумя разными сетками данных. если я выберу строку (SelectedItem) из любой таблицы данных, я могу открыть лайтбокс или другой MainView2. При закрытии лайтбокса или переходе обратно из MainView2 в MainView я бы хотел, чтобы MainView фокусировался на SelectedItem и его сетке.
Единственный способ, который я мог придумать для этого, — отправлять сообщения между представлениями или моделями представлений, чтобы установить фокус.
Есть еще мысли?
Заранее спасибо, Kruvi
Ответ №1:
У меня нет готового примера, чтобы показать вам. Возможно, вы можете использовать messanger для отправки сообщения о том, что дочернее представление закрыто. И в родительском окне установите фокус на тот элемент управления, который вы хотели бы. В качестве альтернативы вы также можете запустить событие из дочернего элемента управления, на который может быть подписан родительский элемент.
Лично мне нравится подход messanger, поскольку он позволяет отделить решение. Наличие события означает, что родительский элемент будет в некоторой степени связан с дочерним и может вызвать проблемы с масштабируемостью и ремонтопригодностью приложения, если оно очень большое.
Надеюсь, это поможет.