2012-02-15 48 views
0

編輯:WP7數據綁定與透視 - 不知道我要去哪裏錯了

摸索出了問題 - 見接受的答案了很好的解釋!

我的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> 

原文:

我建設使用示例一個樞軸頁面提供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 Cuisinepublic 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

我一直沒能找到任何在線可能的幫助,可能是因爲我不知道什麼是錯的。

任何建議或指針將不勝感激:)

回答

1

望着最後截圖 - 當您設置ItemsSource屬性,樞軸忽略明確指定PivotItems的收集和基於該的ItemsSource一個新採集。 因此,您可以嘗試刪除PivotItem聲明並僅使用ItemsSource,將其綁定到視圖模型的集合並使用Pivot.ItemTemplate和Pivot.ItemContainerStyle屬性的組合來正確地設置透視項目的樣式(設置標題和內容)。

+0

我今天又看了一遍,並解決了這個問題,但這是我做的,所以接受這個答案:) – Josh 2012-02-16 14:04:07

相關問題