0

xceedグリッドがあり(それが重要かどうかはわかりません)、列の1つにTextBlockを持つCellContentTemplateがあります。テキストブロックの幅がテキストのサイズに自動的に設定されるのではなく、列のサイズにしたいと思います。サイズ変更を許可しているので、少し複雑になります。コードビハインドで、列のサイズが変更されたときにTextBlockの幅を動的に変更する方法はありますか?

編集:CellContentTemplate

 <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

こんにちはこれは、StackPanelでTextBlockを囲んでいるためです。1つの簡単な回避策は、2つのTextBlockの代わりに2つのRunを使用して次のような2つのプロパティをバインドすることです。

<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 に答える