0

我有一个 xceed 网格(不确定这是否重要),其中一列有一个具有 TextBlock 的 CellContentTemplate。我希望它不是自动设置为文本大小的文本块宽度,而是列的大小。我允许调整大小,所以这会使事情变得有点复杂。有没有办法在调整列大小时在后面的代码中动态更改 TextBlock 宽度?

编辑:细胞内容模板

 <DataTemplate x:Key="CellTemplate.TaskName">
        <StackPanel Orientation="Horizontal">
            <TextBlock Tag="{Binding Path=DataContext, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
                   <TextBlock Text="{Binding Path=Name}" >
                       <ui:DragDropBinding.DragSource>
                           <Binding Mode="TwoWay" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type XceedProviders:DataGridControlWithSelectedItems}}" Path="BindableSelectedItems" PresentationTraceSources.TraceLevel="High"/>
                       </ui:DragDropBinding.DragSource>
                   </TextBlock>
               </TextBlock>
        </StackPanel>
    </DataTemplate>
4

1 回答 1

1

您好,这是因为您将 TextBlock 包含在 StackPanel 中。一种简单的解决方法是使用两个 Run 来绑定两个属性,而不是两个 TextBlock

<DataGridTemplateColumn Header="Name" Width="*" >
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                            <TextBlock Background="Green">
                                <Run Text="{Binding Name}"/>
                                <Run Text="{Binding Rollno}"/>
                            </TextBlock>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

现在文本块将随着列的宽度而扩展。我希望这会有所帮助。

于 2012-07-12T17:30:03.243 回答