WPF DataGrid调整模板列的内容大小

Naf*_*tis 5 wpf datagrid

我有一个带有2个模板化列的DataGrid:

  • 第一个包括一个组合框,我让它的大小适合它的内容,因为这最多只有一两个字;

  • 第二个包含一个文本框,文本可能会变得有点长.

所以在这里我设置MaxWidth=somevalue避免它的宽度扩展超出datagrid容器,我为它做同样的事情MaxHeight,并设置要包装的文本.无论如何,我希望文本框的大小调整以填充datagrid容器中的所有剩余空间:如果用户缩小或放大第二列,我希望文本框相应地缩小或放大,以便它们的宽度保持在同步.文本将换行,并根据需要显示滚动条.

网格中的两个控件都绑定到MVVM方案中的数据源.任何人都可以提示让模板文本框宽度与容器列扩展/收缩吗?这是我的示例代码:

<DataGrid ...>
  <DataGrid.Columns>
    <!-- 1 -->
    <DataGridTemplateColumn ...>
      <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
          <ComboBox .../>
        </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>

    <!-- 2: THIS TEXTBOX SHOULD EXPAND/CONTRACT WITH ITS CONTAINER COLUMN -->
    <DataGridTemplateColumn ...>
      <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
          <TextBox TextWrapping="Wrap"
               MinWidth="400" MaxWidth="700"
               MaxHeight="400"
               ScrollViewer.VerticalScrollBarVisibility="Auto" .../>
        </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
  </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

Rac*_*hel 7

设置HorizontalAlignment="Stretch"在你TextBox和你的设置DataGrid的列Width="*"