Использование PhoneApplicationPage в качестве вложенного контейнера представления - PullRequest
0 голосов
/ 11 сентября 2011

В наборе инструментов MVVM Light для Windows Phone всякий раз, когда мне нужно добавить новый элемент MvvmLightView (WP), я получаю шаблон, создающий для меня PhoneApplicationPage.

Как насчет случаев, когда я хочусоздайте вложенное представление, например, в случае представления ListBox ItemTemplate.

До MVVM Light каждый раз, когда мне требовалось разделить разметку, я создавал стандартный UserControl, и это работало нормально.

Должен ли я использовать MvvmLightView только при создании навигации по страницам?

1 Ответ

0 голосов
/ 15 сентября 2011

Шаблон элемента - это руководство, которое создает для вас код. Это не является и не является единственным способом создания представлений или вложенных представлений.

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

<ext:MyUserControl DataContext="{Binding MySubViewProperty}"/>

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

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

...