Wpf 相对资源查找或问题

Wpf 相对资源查找或问题,wpf,listview,binding,relativesource,Wpf,Listview,Binding,Relativesource,代码如下: <GridViewColumn DisplayMemberBinding="{Binding Path=BookId}" Width="100"> <GridViewColumn.Header> <Border BorderBrush="Black"> <TextBlock Width="{Binding RelativeSource=

代码如下:

<GridViewColumn DisplayMemberBinding="{Binding Path=BookId}" Width="100">
    <GridViewColumn.Header>
        <Border BorderBrush="Black">
            <TextBlock Width="{Binding RelativeSource=
                                       {RelativeSource FindAncestor, 
                                       AncestorType={x:Type GridViewColumn}}, 
                                       Path=Width}" Text="ID">
                <TextBlock.ContextMenu>
                    <ContextMenu>item1</ContextMenu>
                </TextBlock.ContextMenu>
            </TextBlock>
            </Border>
    </GridViewColumn.Header>
</GridViewColumn>

项目1
基本上,我试图做的是使标题中的TextBlock跟随整个列的宽度

它不起作用:文本块的宽度始终与内部文本匹配。有什么想法吗?。。。
提前谢谢

代码中有两个问题

  • GridViewColumn不是TextBox的可视祖先,它的祖先是GridViewColumnHeader
  • 您应该绑定到GridViewColumnHeader的实际宽度,而不是宽度(如果未指定宽度,则它将是无效数字)
  • 因此,您的代码变成:

                  <GridViewColumn
                                DisplayMemberBinding="{Binding Path=BookId}"
                                Width="100">
                    <GridViewColumn.Header>
                        <Border BorderBrush="Black" >
                            <TextBlock Text="ID" Width="{Binding RelativeSource=
                                                            {RelativeSource FindAncestor, 
                                                            AncestorType={x:Type GridViewColumnHeader}}, 
                                                            Path=ActualWidth}">
                                <TextBlock.ContextMenu>
                                    <ContextMenu>item1</ContextMenu>
                                </TextBlock.ContextMenu>
                            </TextBlock>
                            </Border>
                    </GridViewColumn.Header>
                </GridViewColumn>
    
    
    项目1