| 

.NET C# Java Javascript Exception

1
Ich bekomme es nicht hin. Ich möchte eine ListView mit mehreren Spalten. In der ersten Spalte befindet sich ein Togglebutton zum Aufklappen der Details ([v]).

So sieht das in der Grundansicht aus:

[ ][Überschrift1][Überschrift2][Überschrift3]
[v][Inhalt1 ][Inhalt2 ][Inhalt3 ]
[v][Inhalt1 ][Inhalt2 ][Inhalt3 ]

Aufgeklappt soll es dann so aussehen:

[ ][Überschrift1][Überschrift2][Überschrift3]
[v][Inhalt1 ][Inhalt2 ][Inhalt3 ]
[Unterüberschrift1][Unterüberschrift2][Unterüberschrift3]
[Unterinhalt1 ][Unterinhalt2 ][Unterinhalt3 ]
[Unterinhalt1 ][Unterinhalt2 ][Unterinhalt3 ]
[Unterinhalt1 ][Unterinhalt2 ][Unterinhalt3 ]
[v][Inhalt1 ][Inhalt2 ][Inhalt3 ]

Ich bekomme grundsätzlich schon beides hin, aber entweder habe ich (Haupt-)überschriften und sehe den Inhalt des Expanders nicht oder ich sehe den Inhalt des Expanders und habe keine (Haupt-)Überschriften.

So sieht die derzeitige Lösung aus (Überschriften, aber kein Inhalt). Der Inhalt ist nicht sichtbar, weil der Expander nur in der ersten GridViewColumn angeordnet ist und ich keine GridColumnSpan finde.

<ListView x:Name="Incidents">
<ListView.View>
<GridView>
<GridViewColumn Header="">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Expander Header="">
<ListView ItemsSource="{Binding Handling}" Margin="24,5,0,5">
<ListView.View>
<GridView>
<GridViewColumn Header="Abwicklung" DisplayMemberBinding="{Binding HandlingTemplate.Description}"/>
<GridViewColumn Header="Ziel" DisplayMemberBinding="{Binding Target.ShortName}"/>
<GridViewColumn Header="Zustand" DisplayMemberBinding="{Binding Condition, Converter={StaticResource conditionConverter}}"/>
<GridViewColumn Header="Bearbeiter" DisplayMemberBinding="{Binding User.LastName}"/>
<GridViewColumn Header="Zeitstempel" DisplayMemberBinding="{Binding Timestamp, StringFormat={}{0:dd.MM.yyyy hh:mm}}"/>
</GridView>
</ListView.View>

</ListView>
</Expander>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Spedition" DisplayMemberBinding="{Binding Shipper}"/>
<GridViewColumn Header="Kennzeichen" DisplayMemberBinding="{Binding LicencePlate}"/>
<GridViewColumn Header="Zustand" DisplayMemberBinding="{Binding CurrentCondition, Converter={StaticResource conditionConverter}}"/>
</GridView>
</ListView.View>
</ListView>


In meiner zweiten Lösung habe ich eine ListView mit Expander im ItemTemplate und jeder Expander.Content enthält eine weitere ListView mit den Details. Da wird mir in der Hauptliste allerdings nur der Expander.Header angezeigt und eben keine Spaltenüberschriften.

Was tun?
News:
22.08.2012
Guido 1 1 1
1 Antwort
1
Gibt es einen Grund, warum Du ein ListView verwendest und kein DataGrid?

Beim DataGrid bekommst Du mit dem RowDetailsTemplates das, was Du oben beschreibst ohne Expander. Die RowDetails kannst Du Dir entweder beim Fokusieren anzeigen lassen oder manuell, in dem Du einen zusätzlichen Button zum Aufklappen einbaust.
24.08.2012
judgy 3,0k 1 1 8
Ich habe noch nicht die Übersicht, was es in WPF für Möglichkeiten gibt, aber du hast recht. Mit dem DataGrid war es recht einfach.
Guido 24.08.2012

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH