如何在Silverlight DataGridTextColumn中包装文本

Sim*_*ver 16 silverlight silverlight-4.0

我试图在Silverlight 4 Beta中创建一个简单的DataGrid,但似乎无法弄清楚如何让我的Note列到wordwrap.

该表代表订单上的注释,因此它们的长度可变.我希望'Note'单元格垂直展开以适合内容.

我发现了许多类似的问题,但没有答案.Silverlight 4中有新内容可以解决这个问题吗?

    <data:DataGrid AutoGenerateColumns="False" Name="dataGrid1" IsReadOnly="True">
        <data:DataGrid.Columns>
            <data:DataGridTextColumn Header="Date" Binding="{Binding Date}" />
            <data:DataGridTextColumn Header="User" Binding="{Binding User}" />
            <data:DataGridTextColumn Header="Note" Binding="{Binding Note}"  />
        </data:DataGrid.Columns>
    </data:DataGrid>
Run Code Online (Sandbox Code Playgroud)

Jam*_*Hay 24

使用DataGridTemplateColumn而不是文本列.在那里有一个TextBlock,TextWrapping设置为true:

   <data:DataGrid x:Name="LayoutRoot" AutoGenerateColumns="False" IsReadOnly="True" RowDetailsVisibilityMode="Visible" >
        <data:DataGrid.Columns>

            <data:DataGridTextColumn Header="Date" Binding="{Binding Date}" />
            <data:DataGridTextColumn Header="User" Binding="{Binding User}" />

            <data:DataGridTemplateColumn Header="Note" Width="100">
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                            <TextBlock TextWrapping="Wrap" Text="{Binding Note}" />
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>
            </data:DataGridTemplateColumn> 

        </data:DataGrid.Columns>
    </data:DataGrid>
Run Code Online (Sandbox Code Playgroud)


小智 20

我使用ElementStyle来设置换行文本,它可以正常工作.快乐的编码!

<Style x:Key="DataGridTextColumnStyle" TargetType="TextBlock">
    <Setter Property="TextWrapping" Value="Wrap"/>
</Style>

<data:DataGridTextColumn Binding="{Binding DESC}"   
         Header="Short Description" 
         HeaderStyle="{StaticResource DataGridHeaderStyle}"  
         ElementStyle="{StaticResource DataGridTextColumnStyle}"  >
</data:DataGridTextColumn>   
Run Code Online (Sandbox Code Playgroud)