У меня есть DataGrid с 3 или более столбцами, размер которых можно изменить, перетаскивая линию между заголовками столбцов.
Когда я уменьшаю ширину первого столбца, второй столбец становится шире. Положение третьего столбца не меняется.
Но то, что я ищу, - это поведение, подобное тому, которое вы знаете в большинстве распространенных приложений для работы с оболочкой: когда я уменьшаю ширину первого столбца в OpenOffice Calc, все столбцы справа от первого столбца перемещаются влево. Второй столбец не становится шире.
Можно ли получить такое поведение изменения размера с помощью WPF DataGrid?
Вот фрагмент кода XAML.
<DataGrid Name="dataGrid" Grid.IsSharedSizeScope="True" AutoGenerateColumns="False" IsReadOnly="False"
SelectionUnit="FullRow" HeadersVisibility="None" RowHeaderWidth="0" BorderThickness="0 0 0 0"
SelectionChanged="dataGrid_SelectionChanged" SelectedCellsChanged="dataGrid_SelectedCellsChanged" PreviewMouseRightButtonDown="dataGrid_PreviewMouseRightButtonDown"
PreviewKeyDown="DataGrid_PreviewKeyDown">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Title" CanUserResize="True" MinWidth="10" Width="*" CanUserSort="False" CanUserReorder="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<local:ListControlEntryControl>
<local:ListControlEntryControl.EntryContrainer>
<MultiBinding Converter="{StaticResource multiValueConverterGroup}">
<Binding />
<Binding Path="Trigger"/>
</MultiBinding>
</local:ListControlEntryControl.EntryContrainer>
</local:ListControlEntryControl>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="V1" CanUserResize="True" MinWidth="10" Width="50" CanUserSort="False" Visibility="Visible">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>abc</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="V2" CanUserResize="True" MinWidth="10" Width="50" CanUserReorder="False" Visibility="Visible" Binding="{Binding V2}" IsReadOnly="False"/>
</DataGrid.Columns>
</DataGrid>