MVVM Вопрос для Windows Phone
Предположим, вы хотите иметь несколько списков в вашей модели представления и, скажем, создать сводную форму с различным ListBox на каждой панели.В целях иллюстрации, скажем, у нас есть два списка для людей и мест на одной странице, но на разных панелях.(PeopleList и PlacesList)
Как настроить ваши ViewModels.Существует ли одна MainViewModel для каждого списка?Одна MainViewModel с двумя списками?Я хотел бы иметь возможность перейти к соответствующей странице сведений о странице сведений на основе их выбора.
Во-вторых, как связать каждый список со своей моделью представления при загрузке формы.* Моя путаница заключается в том, что примеры, по-видимому, указывают на то, что при загрузке формы вы устанавливаете контекст для одной «статической переменной» и не знаете, как указать другой источник каждого списка.... с вопросами ???
DataContext = App.ViewModel ;
public class MainViewModel : INotifyPropertyChanged
{
public MainViewModel()
{
this.Items = new ObservableCollection<ItemViewModel>();
//?? can you have more than one of these?
}
//?? should I have Public MainViewModel2() with this.Items = new OC<IVM2>
//...
/// Creates and adds a few ItemViewModel objects into the Items collection.
/// </summary>
public void LoadData()
{
this.Items.Add(new ItemViewModel() { VAR1 = "X", VAR2 = "Y"}) ;
<Grid x:Name="LayoutRoot" Background="Transparent" >
<!--Pivot Control-->
<controls:Pivot x:Name="Pivot" Title="MyApp" DataContext="{Binding}" Loaded="Pivot_Loaded">
<!--Pivot item one-->
...
<!--Pivot item two-->
<controls:PivotItem Header="people">
<Grid>
<ListBox x:Name="PeopleList" Height="442" HorizontalAlignment="Left" Margin="46,68,0,0" VerticalAlignment="Top" Width="346" ItemsSource="{Binding ItemsA}" SelectionChanged="ListBox1_SelectionChanged" />
</Grid>
<!--Pivot item three-->
<controls:PivotItem Header="places">
<Grid>
<ListBox x:Name="PlacesList" Height="442" HorizontalAlignment="Left" Margin="46,68,0,0" VerticalAlignment="Top" Width="346" ItemsSource="{Binding ItemsB}" SelectionChanged="ListBox2_SelectionChanged" />
</Grid>