WPF DataGrid列调整大小行为

时间:2019-01-14 19:21:36

标签: c# wpf datagrid

我有一个3列或更多列的DataGrid,可以调整其大小以拖动列标题之间的行。

当我减小第一列的宽度时,第二列会变宽。第三列的位置不变。

但是我要寻找的是一种行为,就像您从大多数扩展的Sheat应用程序中了解到的那样:当我减小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>

0 个答案:

没有答案