MVVM обмен сообщениями или событиями или какой-либо другой вариант там? - PullRequest
0 голосов
/ 21 декабря 2010

У меня есть меню в MainViewModel, теперь при выборе определенного элемента меню. Я хотел обновить данные представления, которое уже загружено.

т.е. хотя есть экземпляр этого viewModel в MainViewModel, когда я пытаюсьчтобы вызвать метод через этот экземпляр и изменить свойство данных, он не показывает изменения в представлении.Принимая во внимание, что те же самые изменения происходят, когда я вызываю этот метод с помощью команды relay, используя кнопку в представлении этого viewModel.

Теперь, похоже, мне нужно вызывать команду relay этого viewModel из MainViewModel, я думаю, что это решит проблему, нокак это сделать?какой самый простой способНужно ли мне использовать обмен сообщениями?

1 Ответ

3 голосов
/ 21 декабря 2010

Я пробовал класс MVVM Light messenger, он довольно простой и элегантный (поддерживает слабую связь ViewModels) !! и самое главное это работает

code:

Send:
Messenger.Default.Send(stringParameter, "key_anything");

Register:
Messenger.Default.Register<string>(this, "key_anything", invokeFunction);

private void invokeFunction(string stringParamter)
{
//code goes here!
}

...