Die Gruppierung der GridView in Windows 8 Metro-App
Kann mir jemand einige Hinweise, wie das zu erreichen ist die Gruppierung
innerhalb eines GridView-für Metro-Apps, wie in der Abbildung unten gezeigt.
Dieser Screenshot ist aus der Entwickler-Ressourcen für Windows Metro Apps,
aber leider gibt es keine Beschreibung, wie um es zu erreichen.
Ich habe den folgenden code-snippet:
Xaml:
...
<Page.Resources>
<CollectionViewSource x:Name="cvs" IsSourceGrouped="true"/>
</Page.Resources>
<Grid Background="{StaticResource DefaultBackground}">
<GridView x:Name="DefaultGridView" ItemsSource="{Binding Source={StaticResource cvs}}">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Rectangle Fill="{Binding}" Width="100" Height="100" Margin="0 0 5 0"/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text='{Binding Key}' Foreground="Gray" Margin="5" FontSize="30" FontFamily="Segoe UI Light" />
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid MaximumRowsOrColumns="2" Orientation="Horizontal" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
</Grid>
...
C#:
In der Code-Behind-ich den folgenden Code in die OnNavigateTo-Methode:
List<string> strList = new List<string>() {
"Red", "Red", "Red", "Red", "Red", "Red",
"Green", "Green","Green","Green","Green",
"Blue","Blue","Blue","Blue" };
var groupedList = from s in strList
group s by s into g
orderby g.Key
select g;
cvs.Source = groupedList;
Egal was ich mache, ich bin nicht in der Lage, um die Gruppierung der Elemente in einer Liste weiter, wie in der
Screenshot. Der Code der die Ergebnisse in separaten Listen gruppiert nebeneinander.
InformationsquelleAutor Edmond Simbari | 2012-03-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich möglicherweise eine Lösung. In meinem projet habe ich eine Liste der Kontakte in alphabetischer Reihenfolge, wie die Kontakte-app.
Habe ich eine GridView (mit diesem Beispiel), ein CollectionViewSource und ein wrappanel fand ich in der WinRT XAML Toolkit (erhalten Sie mit der NuGet-Paket oder kopieren/fügen Sie den source-code). Es ermöglicht Ihnen, Ihre Elemente in den Spalten.
Beispiel
ViewModel
Ansicht
Ja, my bad, ich habe mehrere WrapPanel und ich vergaß hinzuzufügen, die Orientierung für diese ein. Was meinst du mit "sieht nicht so aus dem Bild" ? Wenn Sie eine Menge von Kontakten mit dem gleichen ersten Buchstaben, ja es wird eine getrennte colomn. Wenn Sie möchten, dass genau das Bild der Frage, die Sie brauchen, es zu tun mit der hand, wie Jmix90 sagt.
InformationsquelleAutor Max
http://code.msdn.microsoft.com/windowsapps/GroupedGridView-77c59e8e
InformationsquelleAutor Xyroid
Es nicht getan werden kann mit der Standard-grid-Ansicht Stile.
Müssen Sie möglicherweise verwenden Sie eine keine-gruppiert-posten-Liste und fügen Sie spezielle Elemente mit unterschiedlichen Element-Vorlage ...
Sorry
InformationsquelleAutor Jonatha ANTOINE
Möchte ich hinzufügen, den Header, die als Elemente für das gridview-Steuerelement, und verwenden Sie einen TemplateSelector-display, um die Elemente dem richtigen Weg...
InformationsquelleAutor Ripityom