Пожалуйста, помогите с проблемой проектирования / понимания MVVM.
Учитывая, что у нас есть приложение для Windows Phone со следующей структурой пользовательского интерфейса:
MainPage.xaml тело:
<views:PanoramaView/>
DataContext is set via MVVM Light view-model locator to a static MainViewModel class instance.
Views / PanoramaView.xaml body:
<UserControl.DataContext>
<ViewModels:PanoramaViewModel/>
</UserControl.DataContext>
<StackPanel x:Name="LayoutRoot">
<controls:Panorama Background="{Binding PanoramaBackgroundBrush}"
ItemsSource="{Binding PanoramaItems}"
ItemTemplate="{StaticResource panoramaItemTemplate}"
/>
</StackPanel>
В этот момент я наткнулся на вопрос - Что мне делать, если я хочувсе мои PanoramaItems должны состоять из разных пользовательских элементов управления? Если я определю шаблон элемента панорамы, я обрекаю их всех на одинаковые.Но я намерен иметь несколько совершенно разных предметов панорамы.Я хотел иметь класс (предположительно PanoramaViewModel
), который позволил бы мне контролировать, какие элементы панорамы отображаются в данный момент времени.
Поэтому у меня должен быть способ придерживаться MVVM, но иметь возможность создавать новые виды (элементы панорамы) и вставлять их в PanoramaItems
коллекцию моих PanoramaViewModel
.Где и как мне это сделать?