2011-08-25 63 views
5

我有2个模板列的数据网格:WPF数据网格上浆模板化柱的内容

  • 第一包括组合框和我让它尺寸以适应其内容,因为这是至多一个或两个话;

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

所以我在这里设置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> 

回答

7

TextBox设置HorizontalAlignment="Stretch"并设置DataGrid的列Width="*"

+0

谢谢,我不知道明星大小的DataGrid太:) – Naftis

+0

使用这6个年以后。谢谢。 +1 – BENN1TH