我有一个带有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>
答案 0 :(得分:7)
在HorizontalAlignment="Stretch"
上设置TextBox
并设置您的DataGrid列Width="*"