Редактировать:
Решил проблему - см. Принятый ответ для хорошего объяснения!
Мой XAML теперь выглядит так:
<controls:Pivot x:Name="MainPivot" Title="FYP APP" ItemsSource="{Binding Cuisines}">
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Cuisine}"/>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
<controls:Pivot.ItemTemplate>
<DataTemplate>
<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Outlets}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17" Width="432" Height="78">
<TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding Cuisine}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</controls:Pivot.ItemTemplate>
</controls:Pivot>
Оригинал:
Я создаю Pivot-страницу, используя образец, поставляемый с VS.
У меня есть список ресторанов, которые я бы хотел отфильтровать, проводя по оси вправо / влево (например, http://img831.imageshack.us/img831/514/pivotm.jpg).
У меня есть список всех ресторановв App.xaml.cs
(public static ObservableCollection<OutletViewModel> LocalOutlets
, который заполняется из конструктора MainPage), и это затем обрабатывается для создания этой структуры:
OutletListPage2.xaml.cs
(страница, над которой я работаю) устанавливает DataContext
для нового OutletsByCuisineViewModel()
.
OutletsByCuisineViewModel
имеет public ObservableCollection<CuisineViewModel> Cuisines
, который содержит CuisineViewModel
для каждой кухни (включая «все»).
A CuisineViewModel
имеет public string Cuisine
и public ObservableCollection<OutletViewModel> Outlets
.
. OutletViewModel
содержит public string Name
и public string Cuisine
- каждый из которых вызывает событие PropertyChanged
.
Пример проектированияя хочу использовать следующие данные: (также я не могу указать один и тот же выход несколько раз в этом файле - VS говорит, что имя XYZ уже существует в текущей области имен)
<local:OutletsByCuisineViewModel
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:FYP.ViewModels">
<local:OutletsByCuisineViewModel.Cuisines>
<local:CuisineViewModel Cuisine="all">
<local:CuisineViewModel.Outlets>
<local:OutletViewModel Name="Test1" Cuisine="fast food" />
<local:OutletViewModel Name="Test2" Cuisine="indian" />
<local:OutletViewModel Name="Test3" Cuisine="pizza" />
</local:CuisineViewModel.Outlets>
</local:CuisineViewModel>
<local:CuisineViewModel Cuisine="fast food">
<local:CuisineViewModel.Outlets>
<local:OutletViewModel Name="Test1a" Cuisine="fast food" />
</local:CuisineViewModel.Outlets>
</local:CuisineViewModel>
<local:CuisineViewModel Cuisine="indian">
<local:CuisineViewModel.Outlets>
<local:OutletViewModel Name="Test2a" Cuisine="indian" />
</local:CuisineViewModel.Outlets>
</local:CuisineViewModel>
<local:CuisineViewModel Cuisine="pizza">
<local:CuisineViewModel.Outlets>
<local:OutletViewModel Name="Test3a" Cuisine="pizza" />
</local:CuisineViewModel.Outlets>
</local:CuisineViewModel>
</local:OutletsByCuisineViewModel.Cuisines>
</local:OutletsByCuisineViewModel>
У меня в конструкторе XAML есть следующее: http://img844.imageshack.us/img844/8464/pivot2.jpg
Мне не удалось найти в Интернете ничего, что могло бы помочь, возможно, потому что я не уверен, что не так.
Любые предложения или указатели будут с благодарностью:)