【发布时间】:2015-11-19 12:16:58
【问题描述】:
我有一个带有自动生成列的 WPF DataGrid。我已经能够使用代码覆盖列标题,并且在缩小列时还可以强制换行列标题。当我尝试在单元格上强制文本换行时,我的绑定中断......它在每一列中显示相同的值。
这是我用来格式化的 XAML
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding}"></TextBlock>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.ColumnHeaderStyle>
同样,ColumnHeaderStyle 工作正常,但 CellStyle 不工作。
建议?
更新:
列标题设置如下:
if (e.Column.Header.ToString() == "Product_Description")
e.Column.Header = "Product";
if (e.Column.Header.ToString() == "Original_Gross_Weight")
e.Column.Header = "Orig. Net Wt.";
标题的包装效果很好。只是内容的包装不起作用。
【问题讨论】:
-
如果网格是从属性自动生成的,属性名称没有空格可以换行...那么将其设置为
wrap提供了什么? -
查看更新。当我在代码中覆盖标头时,标头包装起作用。
-
哈。刚刚在标题文本中也看到了一个错字。哎呀
标签: wpf wpfdatagrid app.xaml