2014-09-04 46 views
1

我的LonglistSelector只顯示GroupHeaderTemplate Data(ImageSource,Title),但不顯示ItemTemplate DataTemplate(SubItemTitle,Location)。我如何解決它?爲什麼LonglistSelector不顯示項目,雖然它顯示GroupHeaderItem?

public class Data 
{ 
    public string Title { get; set; } 
    public string ImageSource { get; set; } 
    public List<SubItem> SubItems { get; set; }  
    public Data() 
    { 
     SubItems = new List<SubItem>(); 
    } 

} 

public class SubItem 
{ 
    public string SubItemTitle { get; set; } 
    public string Location { get; set; } 
} 

<phone:LongListSelector ItemsSource="{Binding DataCollection}" Grid.Row="0" IsGroupingEnabled="True"> 
    <phone:LongListSelector.GroupHeaderTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal" Margin="10"> 
       <Image Source="{Binding ImageSource}"/> 
       <TextBlock Text="{Binding Title}"/> 
      </StackPanel> 
     </DataTemplate> 
    </phone:LongListSelector.GroupHeaderTemplate> 
    <phone:LongListSelector.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding SubItemTitle}" Padding="5" FontSize="40"/> 
        <TextBlock Text="{Binding Location}" Padding="5" FontSize="40"/> 
       </StackPanel> 
      </StackPanel> 
     </DataTemplate> 
    </phone:LongListSelector.ItemTemplate> 
</phone:LongListSelector> 

回答

0

你必須轉換無論你是使用到組的項目繼承的類。嘗試使用List而不是IEnumerator

這一個討論相同的longlistselector問題。

Grouped LongListSelector: headers appear, items don't

希望它能幫助!

+0

謝謝@Kulasangar,這是有幫助的;雖然它只顯示標題模板中的組鍵(標題),但我需要在標題模板中顯示「標題」和「圖像源」。如果你知道,請告訴我方式。再次感謝。 – 2014-09-30 05:20:30

0

這MSDN例子對我幫助很大,當我有麻煩理解分組與LongListSelector

How to display data in a grouped list in LongListSelector for Windows Phone 8


它需要通過鍵值進行分組。所有的我知道它的實例總是這樣的:

List<AlphaKeyGroup<your_data_type>> my_group_list; // or 
ObservableCollection<AlphaKeyGroup<your_data_type>> my_group_list; 

不是有一個屬性,它是一個子列表清單。

AlphaKeyGroup只是一個List<T>/ObservableCollection<T>有額外的屬性一鍵


認爲它這樣,在你的代碼如何在LongListSelector知道你的「標題」是組密鑰,而不是「ImageSource」?

如果MSDN頁面上的代碼太複雜以至於無法理解,那麼您可以始終採用更簡單的路線並使用GroupBy使用LINQ。

這裏舉一個例子:Group by in LINQ

+0

感謝@ Chubosaurus軟件。此過程將列表轉換爲平面列表。實際上是否有可能讓團體不創建平面清單? – 2014-09-05 05:31:32

+0

不知道你說的是什麼意思。組函數的返回值應該看起來像一個目錄樹結構(或列表列表,其中的鍵是父樹的名稱)。這裏有一個調試看看它應該輸出什麼。 http://i.imgur.com/jVd6KZk.png – 2014-09-05 05:52:04

+0

Flat-List:如果我用SubItem類的所有屬性以及Data Class的「Title」和「ImageSource」屬性創建一個類,然後列出新的類對象列表是平板列表。 – 2014-09-05 13:18:28