WPF: How to set column width with auto fill in ListView with custom user control.

Posted by powerk on Stack Overflow See other posts from Stack Overflow or by powerk
Published on 2010-05-27T16:05:40Z Indexed on 2010/05/27 16:11 UTC
Read the original article Hit count: 1041

Filed under:
|

A ListView with Datatemplate in GridViewColumn:

    <ListView Name ="LogDataList" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding LogDataCollection}" Background="Cyan"> 
            <ListView.View> 
                <GridView AllowsColumnReorder="true" 
                  ColumnHeaderToolTip="Event Log Information"> 
                    <GridViewColumn Header="Event Log Name" Width="100"> 
                        <GridViewColumn.CellTemplate> 
                            <DataTemplate> 
                                <l:MyTextBlock Height="25" DataContext="{Binding LogName, Converter={StaticResource DataFieldConverter}}" HighlightMatchCase="{Binding Element}" Loaded="EditBox_Loaded"/> 
                            </DataTemplate> 
                        </GridViewColumn.CellTemplate> 
                    </GridViewColumn> 
                        ...
                    </GridView> 
            </ListView.View> 
        </ListView> 

I have no idea about how to make column width autofill although I have tried a lot of way to walk up. The general idea for demo is :

<ListView Name ="LogDataList" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding LogDataCollection}" Background="Cyan">
            <ListView.Resources>
                <Style x:Key="ColumnWidthStyle" TargetType="{x:Null GridViewColumn}">
                    <Style.Setters>
                        <Setter Property="HorizontalContentAlignment" Value="Stretch" >
                        </Setter>
                    </Style.Setters>
                </Style>
            </ListView.Resources>
            <ListView.View>
                <GridView AllowsColumnReorder="true"
                  ColumnHeaderToolTip="Event Log Information">
                    <GridViewColumn Header="Event Log Name" DisplayMemberBinding="{Binding Path=LogName}" HeaderContainerStyle="{StaticResource ColumnWidthStyle}">

It works, but not accord with my demand. I need to customize datatemplate with my custom user control(MyTextBlock) since the enhancement(HighlighMatchCase property) and binding datacontext.

How can I set up ColumnWidthMode with Fill in the word? On-line'in.

I really appreciate your help.

© Stack Overflow or respective owner

Related posts about wpf

Related posts about listviewitem