Как поддерживать изменение размера столбца DataGridRowHeader в DataGrid

Я хотел бы разрешить изменение размера нулевого столбца dataGrid, столбца, который содержит кнопку SelectAll и заголовки строк -

введите здесь описание изображения

Изображение взято из - WPF Toolkit DataGrid, часть II — настраиваемый стиль


person akjoshi    schedule 06.03.2012    source источник


Ответы (2)


Попробуй это...

XAML:

   <tk:DataGrid x:Name="MyDataGrid"
                RowHeaderWidth="15"
                ItemsSource="{StaticResource MyData}"
                AutoGenerateColumns="False">
        <tk:DataGrid.Columns>
            <tk:DataGridTextColumn Binding="{Binding ID}">
                <tk:DataGridTextColumn.HeaderTemplate>
                    <DataTemplate>
                        <DockPanel>
                            <GridSplitter
                                DockPanel.Dock="Left"
                                VerticalAlignment="Stretch"
                                HorizontalAlignment="Left" Width="2"
                                DragDelta="GridSplitter_DragDelta"/>
                            <TextBlock Text="ID" DockPanel.Dock="Right"/>
                        </DockPanel>
                    </DataTemplate>
                </tk:DataGridTextColumn.HeaderTemplate>
            </tk:DataGridTextColumn>
            <tk:DataGridTextColumn Header="Name"
                                   Binding="{Binding Name}">
            </tk:DataGridTextColumn>
        </tk:DataGrid.Columns>
    </tk:DataGrid>

Код позади:

     private void GridSplitter_DragDelta
        (object sender,
         System.Windows.Controls.Primitives.DragDeltaEventArgs e)
    {
        if (MyDataGrid.RowHeaderWidth + e.HorizontalChange >= 15)
        {
            MyDataGrid.RowHeaderWidth = MyDataGrid.RowHeaderWidth + e.HorizontalChange;
        }
    }

Вы можете переопределить RowHeaderTemplate и сделать этот точный разделитель сетки, прикрепленный к правой стороне. Но для меня закрепление слева от заголовка первого столбца сработало лучше всего!

person WPF-it    schedule 06.03.2012

                <GridViewColumn Header="Name" Width="150">
                     <GridViewColumn.CellTemplate>
                         <DataTemplate>
                            <TextBlock Width="Auto" TextTrimming="CharacterEllipsis"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>

Попробуй это

person Sachin CR    schedule 06.03.2012
comment
GridViewColumn специфичен для ListView и не связан с сеткой данных WPF. - person WPF-it; 06.03.2012