Moin,
Ich möchte Daten aus einer DataTable in einem Datagrid anzeigen. Die funktioniert auch.
Zusätzlich möchte ich diese Daten Gruppieren.
Dies mache ich wie folgt:
In den Group-Headers möchte ich bestimmte Felder ausgeben lassen. Dazu habe ich folgendes Template:
Der Header bleibt aber immer leer.
Wenn ich den Header-Text fest setzte wird er mir angezeigt.
Was mach ich falsch.
Gruß
HamburgerJungeJr
Ich möchte Daten aus einer DataTable in einem Datagrid anzeigen. Die funktioniert auch.
Zusätzlich möchte ich diese Daten Gruppieren.
Dies mache ich wie folgt:
VB.NET-Quellcode
- Dim cv As ICollectionView = CollectionViewSource.GetDefaultView(loadTicker)
- cv.GroupDescriptions.Add(New PropertyGroupDescription("vId"))
- g_Ticker.DataContext = cv
- Dim dtTicker As dsTechnikVeranstaltungen.dtTickerDataTable = dsTechnikVeranstaltungen.dtTicker
- Dim con As New OleDbConnection
- Dim cmd As New OleDbCommand
- con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & My.Settings.Datenbank & "; Persist Security Info=True;"
- cmd.Connection = con
- Try
- con.Open()
- cmd.CommandText = "SELECT Verfügbar.vfId, Veranstaltungen.vId, Veranstaltungen.vDatum, Veranstaltungen.vBeginn, Veranstaltungen.vTreffen, Veranstaltungen.vName, Verfügbar.vfVerfügbar, Verfügbar.vfNichtVerfügbar, Anwender.aNachname, Anwender.aVorname FROM Anwender RIGHT JOIN (Veranstaltungen LEFT JOIN Verfügbar ON Veranstaltungen.vId = Verfügbar.vfIdVeranstaltung) ON Anwender.aId = Verfügbar.vfIdAnwender WHERE(((Veranstaltungen.vDatum) > Now())) ORDER BY Veranstaltungen.vDatum, Veranstaltungen.vTreffen, Verfügbar.vfVerfügbar, Anwender.aNachname, Anwender.aVorname;"
- Dim reader As OleDbDataReader = cmd.ExecuteReader
- dtTicker.Load(reader)
- reader.Close()
- con.Close()
- Catch ex As Exception
- MessageBox.Show(ex.Message)
- End Try
- Return dtTicker
In den Group-Headers möchte ich bestimmte Felder ausgeben lassen. Dazu habe ich folgendes Template:
XML-Quellcode
- <Grid x:Name="g_Ticker">
- <DataGrid x:Name="dg_Veranstaltungen" Style="{StaticResource dataGridTickerStyle}" ItemsSource="{Binding}" CanUserAddRows="False" AutoGenerateColumns="False">
- <DataGrid.Columns>
- <DataGridTextColumn Binding="{Binding vName}" />
- <DataGridTextColumn Binding="{Binding aNachname}" />
- <DataGridTextColumn Binding="{Binding aVorname}" />
- <DataGridCheckBoxColumn Binding="{Binding vfVerfügbar}" />
- <DataGridCheckBoxColumn Binding="{Binding vfNichtVerfügbar}" />
- </DataGrid.Columns>
- <DataGrid.GroupStyle>
- <GroupStyle>
- <GroupStyle.ContainerStyle>
- <Style TargetType="{x:Type GroupItem}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="{x:Type GroupItem}">
- <Expander>
- <Expander.Header>
- <DockPanel TextBlock.FontWeight="Bold">
- <TextBlock Text="{Binding vName}" />
- </DockPanel>
- </Expander.Header>
- <ItemsPresenter />
- </Expander>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
- </GroupStyle.ContainerStyle>
- </GroupStyle>
- </DataGrid.GroupStyle>
- </DataGrid>
- </Grid>
Der Header bleibt aber immer leer.
Wenn ich den Header-Text fest setzte wird er mir angezeigt.
Was mach ich falsch.
Gruß
HamburgerJungeJr