将UI元素上的宽度绑定到另一个UI元素的宽度

Mar*_*s2k 4 data-binding wpf width

我想将Width列标题绑定到Width定义的标头.但是代码不起作用.如果我明确指定Width(宽度="100"),它工作正常.有人能说清楚,并告诉我下面的代码有什么问题吗?

<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100">
        <dataGrid:DataGridTemplateColumn.Header>
            <Grid HorizontalAlignment="Stretch">
                <TextBlock Text="PDP" VerticalAlignment="Center" HorizontalAlignment="Center" 
                    TextWrapping="Wrap" Width="{Binding ElementName=pdpCol,Path=ActualWidth }" TextAlignment="Center" />
            </Grid>
        </dataGrid:DataGridTemplateColumn.Header>
</dataGrid:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

Oli*_*ppi 5

HorizontalAlignment="Center"从TextBlock中删除或将属性设置为Stretch.然后TextBlock将自动消耗所有可用宽度.此外,如果您没有显示除文本块之外的任何内容,则删除网格并仅使用TextBlock.您还需要直接设置HeaderTemplate而不是Header.

<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100" Header="PDP">
    <dataGrid:DataGridTemplateColumn.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding}" TextAlign="Center" />
        </DataTemplate>
    </dataGrid:DataGridTemplateColumn.HeaderTemplate>
</dataGrid:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)


诚挚的问候,Oliver Hanappi