Silverlight Prism - доступ к методам элемента управления в представлении из модели представления - PullRequest
0 голосов
/ 22 февраля 2011

недавно я начал работать с PRISM в Silverlight. Допустим, у меня есть View, который содержит специальный элемент управления Map, в котором есть методы, которые я сейчас использую в своем коде, и я хотел бы перейти к ViewModel. Например:

private void DoSomething()
{ 
    Map.ZoomTo(Layer.InitialExtent); 
}

Позже мне нужно будет использовать больше методов, таких как:

Map.PanTo(...);
Map.MapToScreen(...);

Я знаю, что для свойств я должен использовать Binding. Но какова практика для методов? (Я, конечно, не хочу оставлять это в коде).

Может кто-нибудь сказать мне, как получить доступ к методам управления из ViewModel?

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Оставьте это в коде позади.Похоже, то, что вы делаете, чисто визуально.MVVM - это способ представления представления для представления данных, отображаемых из ViewModel, через привязки и т. Д. Если нет способа изменить данные в ViewModel, чтобы выразить то, что вы пытаетесь сделать, оставьте это в коде.MVVM не означает никакого кода позади.

0 голосов
/ 24 февраля 2011

Я согласен с brianstewey.

MVVM не означает удаление кода. ViewModel подобен мосту между представлением и моделью, но если вам нужно сделать то, что относится только к представлению, этот код должен быть в коде позади представления. Например, такие вещи.

Просто подумайте:

Вы помещаете эту карту в свою виртуальную машину, и завтра вы решаете, что вам нужен другой вид для той же модели вида, делая то же самое, что и существующая, но вместо использования этой специальной карты вы собираетесь использовать другой элемент управления. Вы поймете, что у вас есть представление на вашей виртуальной машине, и вам это не нужно в новом представлении, потому что оно принадлежит другому представлению.

Короче говоря, когда что-то просто просматривается, используйте код позади.

...