Windows 8.1 Store App (XAML / VB.NET): Darstellen einer Tablle mit mehreren Spalten

  • WP8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Bibi.

    Windows 8.1 Store App (XAML / VB.NET): Darstellen einer Tablle mit mehreren Spalten

    Guten Tag,

    ich bin relativ neu auf dem Gebiet der Store App Entwicklung und setze gerade mein erstes Projekt um.
    Bisher klappt alles wunderbar und komme mit Händen und Füßen zu meinem Ziel. Allerdings bekomme ich eines noch nicht richtig hin. Und zwar eine dargestellte Tabelle die auch wie eine Tabelle aussieht.

    Wenn ich eine Auflistung von Datensätzen haben möchte, dann bekomme ich es entweder "nebeneinander" mit dem Gridview in "Kacheln" hin oder aber über das Listview "untereinander". Sieht alles gut aus, funktioniert auch ohne Probleme und das erweitern diese Dinge klappt auch. Doch ich bekomme es nun nicht hin eine Tabelle mit mehreren Spalten und Zeilen zu zauber. So das eine Zeile auch mehrere Spalte hat, so wie ich es aus einem DataGridView kenne.

    Da das Listview mir die Daten untereinander darstellt, gehe ich davon aus das dieses die richtige Lösung wäre. Bin mir allerdings unschlüssig.
    Der XAML Code sieht da wie folgt aus:

    VB.NET-Quellcode

    1. <ListView
    2. x:Name="itemListView"
    3. AutomationProperties.AutomationId="ItemsListView"
    4. AutomationProperties.Name="Items"
    5. TabIndex="1"
    6. Padding="120,0,0,60"
    7. ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
    8. IsSwipeEnabled="False"
    9. Grid.Row="1">
    10. <ListView.ItemTemplate>
    11. <DataTemplate>
    12. <Grid Margin="6">
    13. <Grid.ColumnDefinitions>
    14. <ColumnDefinition Width="Auto"/>
    15. <ColumnDefinition Width="*"/>
    16. </Grid.ColumnDefinitions>
    17. <Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" Width="60" Height="60">
    18. <Image Source="{Binding ImagePath}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
    19. </Border>
    20. <StackPanel Grid.Column="1" Margin="10,0,0,0">
    21. <TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap" MaxHeight="40"/>
    22. <TextBlock Text="{Binding Subtitle}" Style="{StaticResource CaptionTextBlockStyle}" TextWrapping="NoWrap"/>
    23. </StackPanel>
    24. </Grid>
    25. </DataTemplate>
    26. </ListView.ItemTemplate>
    27. <ListView.ItemContainerStyle>
    28. <Style TargetType="FrameworkElement">
    29. <Setter Property="Margin" Value="0,0,0,10"/>
    30. </Style>
    31. </ListView.ItemContainerStyle>
    32. </ListView>

    Die Darstellung wäre dann wie folgt...


    Ziel ist allerdings etwas in dieser Form. Eine einfache Tabelle.



    Ich habe hin und her probiert, bekomme das allerdings in dem DataTemplate nicht gebacken.
    Habe schon viel rum probiert aber kein gescheites Ergebnis hin bekommen.

    Über jegliche Hilfe wäre ich sehr dankbar.
    Es gibt nur ein Grid und ein GridView.
    Diese verhalten sich zwar wie Tabellen (ohne Datenbindung leider), jedoch muss man daraus ein passendes Template Generieren das dann gefüllt wird. Und dafür versuche ich eben jen Darstellung hin zu bekommen.

    Aktuell habe ich es irgendwie so gelöst, das ich für die einzelnen Spalten feste Header Definitionen in der Spaltenbreite festgelegt habe und dann in den einzelnen Zellen Textboxen mit Datenbindung gesetzt habe.
    Wirkt für mich noch alles sehr zusammen geschustert.
    Vorteil: Sieht gut aus. Nachteil: Ist vom Design her leider nicht dynamisch.

    Für den Anfang aber besser als nix.