Laden...

Headerwidth in Listview automatisch vergrößeren

Erstellt von Fabian E. vor 12 Jahren Letzter Beitrag vor 12 Jahren 889 Views
F
Fabian E. Themenstarter:in
258 Beiträge seit 2008
vor 12 Jahren
Headerwidth in Listview automatisch vergrößeren

Hallo,

ich benutze ein ListView mit einem GridView als View.

XAML:


<ListView ItemsSource="{Binding Path=Logs.NormalLog}">
                                    <ListView.View>
                                        <GridView>
                                            <!--Timestamp-->
                                            <GridViewColumn Header="Timestamp"
                                                            Width="Auto">
                                                <GridViewColumn.CellTemplate>
                                                    <DataTemplate DataType="{x:Type M10LogFramework:M10LogMessage}">
                                                        <TextBlock Text="{Binding Timestamp}"
                                                                   Foreground="{Binding LogState,Mode=OneWay,Converter={StaticResource logStateConverter}}" />
                                                    </DataTemplate>
                                                </GridViewColumn.CellTemplate>
                                            </GridViewColumn>

                                            <!--Modul-->
                                            <GridViewColumn Header="Modul"
                                                            Width="Auto">
                                                <GridViewColumn.CellTemplate>
                                                    <DataTemplate DataType="{x:Type M10LogFramework:M10LogMessage}">
                                                        <TextBlock Text="{Binding Modul}"
                                                                   Foreground="{Binding LogState,Mode=OneWay,Converter={StaticResource logStateConverter}}" />
                                                    </DataTemplate>
                                                </GridViewColumn.CellTemplate>
                                            </GridViewColumn>

                                            <!--Text-->
                                            <GridViewColumn Header="Text" Width="Auto">
                                                <GridViewColumn.CellTemplate>
                                                    <DataTemplate DataType="{x:Type M10LogFramework:M10LogMessage}">
                                                        <TextBlock Text="{Binding Message}"
                                                                   Foreground="{Binding LogState,Mode=OneWay,Converter={StaticResource logStateConverter}}" />
                                                    </DataTemplate>
                                                </GridViewColumn.CellTemplate>
                                            </GridViewColumn>
                                        </GridView>
                                    </ListView.View>
                                </ListView>

Wie man sieht, habe ich die Width Property der Header auf Auto gesetzt. Beim hinzufügen des ersten Elements zu der ItemsSource passt sich der Header auch wie gewünscht auf die länge des Inhaltes an.
Danach allerdings nicht mehr. Der Header behält die Größe des ersten Elements immer bei.

Manchmal nimmt der header auch nicht die Größe des ersten sondern eines anderen Elements an, allerdings nicht die, des größten...

Wäre es sinnvoll die Width Property des Textblockes an die der GridViewColumn zu binden? Oder gibt es eine offensichtlichere Lösung?