2013-01-08 11 views
7

In ToolkitLongListSelector, verwendet es eine Eigenschaft IsFlatList die ohne Gruppierung flache Liste angezeigt wird auf true gesetzt werden mußte sein. Aber in der LongListSelector in Telefonsteuerung zur Verfügung gestellt, fehlt diese Eigenschaft. Hier ist, was ich tueWie flatlist anzuzeigen mit LongListSelector Telefon Steuerung von WP8

<phone:LongListSelector Name="myList" IsGroupingEnabled="False" LayoutMode="List" ItemsSource="{Binding Source ={StaticResource SortedList} }" CacheMode="BitmapCache" > 
       <phone:LongListSelector.ItemTemplate> 
        <DataTemplate> 
         <components:MyControl CacheMode="BitmapCache" MyItem="{Binding}"/> 
        </DataTemplate> 
       </phone:LongListSelector.ItemTemplate> 
      </phone:LongListSelector> 

Wenn ich die Kontrolle zu ListBox ändern und LongListSelector spezifische Eigenschaft entfernen dann meine Liste angezeigt werden soll.

Kann mir bitte jemand sagen, was ich vermisse? Ich verfolge this (Anmerkungen) Dokumentation von LongListSelector

Antwort

3

Im Windows Phone 8 Version der LongListSelector Layoutmodus Einstellung zur Liste und IsGroupingEnabled falsch sollte Ihre Databound-Daten als flache Liste wie in der WP7 Toolkit Version des Control Displays .

Zum Beispiel

Bei einer gegebenen Entity Klasse

public class Entity 
{ 
    public string Name 
    { 
     get; 
     set; 
    } 

    public string Info 
    { 
     get; 
     set; 
    } 

    public int ID 
    { 
     get; 
     set; 
    } 
} 

Alles, was ich tun muß, ist eine ObservableCollection von Entity auf meiner Seite erstellen und binden Sie es an die ItemSource meines LongListSelector (benannt Liste).

ObservableCollection<Entity> data = new ObservableCollection<Entity>(); 
list.ItemsSourdce = data; 

Dann erstelle ich die Entitäten und sie in die Sammlung. Hier

ist das XAML für meinen LongListSelector:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
     <phone:LongListSelector Name="list" HorizontalAlignment="Left" Height="609" VerticalAlignment="Top" Width="456" LayoutMode="List" IsGroupingEnabled="False" > 
      <phone:LongListSelector.ItemTemplate> 
       <DataTemplate> 
        <StackPanel VerticalAlignment="Top"> 
         <TextBlock FontWeight="Bold" Text="{Binding Name}" /> 
         <TextBlock Text="{Binding Info}" /> 
        </StackPanel> 
       </DataTemplate> 
      </phone:LongListSelector.ItemTemplate> 
     </phone:LongListSelector> 
    </Grid> 
+0

Hmmmmmmm. Nachdem ich mehrere Stunden mit LongListSelector in WP8 gespielt habe und meine Daten nicht angezeigt bekommen habe, änderte ich die Gruppierung in false und voilà die Daten erschienen! Vielleicht etwas für andere WP8 (XAML?) Noobs zu beachten. Ich setze ItemSources im Code hinterher. Muss sein, wie ich Daten strukturiert habe, die nur eine Liste <> einfacher Objekte ohne Gruppierung ist. – SleepyBoBos

+0

Ich habe in meinem Beispiel gezeigt, dass isGroupingEnabled auf false gesetzt werden muss, wenn Sie eine normale "Liste" und keine gruppierte Liste haben wollen. – Strifex

+0

@SleepyBoBos, es heißt genau das im ersten Satz dieser Antwort zu tun. – MEMark

2

Layoutmodus = "List", das ist alles, was Sie brauchen.