如何在.NET 4.5 DataGrid列中进行文本换行

时间:2015-06-19 16:48:49

标签: c# .net datagrid wpf-controls

我是新手。我的应用程序有一个双列DataGrid控件。都包含文本字符串。第一列文本始终适合其列,但第二列中的文本应在其达到列宽或控件宽度时换行。每当它换行时,我也希望第1列的内容垂直居中。

如何在换行时让第二列换行并将第一列内容垂直居中?

目前我正在自动生成列。我尝试不自动生成列并使用以下内容:

        <DataGrid x:Name="LogGrid" Margin="10,10,10,0" VerticalAlignment="Top" Loaded="LogGrid_Loaded" Background="#FFB8B5A4" MinWidth="380" HorizontalAlignment="Center" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" Width="380" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn x:Name="TimeColumn" Header="Time" IsReadOnly="True" SortDirection="Ascending" Width="55"/>
            <DataGridTextColumn x:Name="LogEntryColumn" Header="Log Entry" CanUserSort="False" Width="325">
                <DataGridTextColumn.ElementStyle>
                    <Style TargetType="{x:Type TextBlock}">
                        <Setter Property="TextBlock.TextWrapping" Value="Wrap"/>
                    </Style>
                </DataGridTextColumn.ElementStyle>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>

结果是文本换行不起作用,我的数据没有转移到控件的列中(我没有使用Data-Binding,因为我还没有理解它)。我无法弄清楚如何使数据出现在手动定义的列中。这会迫使我使用数据绑定吗?

所以我放弃了这种方法,正在等待帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

右键单击&#34;编辑列&#34;在DataGridView上,选择您的专栏,展开&#34; DefaultCellStyle&#34;并设置&#34; WrapMode&#34; = TRUE