2010-04-28 44 views
3

我想将列标题的Width绑定到定义的标头的Width。但是代码不起作用。如果我明确指定Width(宽度=“100”),则它工作正常。有人可以点亮一些灯并告诉我下面的代码有什么问题吗?将UI元素的绑定宽度设置为另一个UI元素的宽度

<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> 

回答

0

检查ActualWidth正在建立,我认为它会工作,如果你只使用Path=Width

+2

仅供参考 - 即在一般情况下,不正确。 ActualWidth始终(自动)在UIElement上设置,并且是只读的。很奇怪的是,UIElement的实际宽度。宽度属性可能会或可能不会被设置。 – 2010-04-28 14:43:00

+0

我曾经有过ActualWidth为空而Width是正确值的情况。在与发布的问题非常相似的情况下。 – 2010-04-28 15:58:08

1

尝试下面的标记。请注意使用HeaderStyle来拉伸模板和HeaderTemplate以实际定义您的Header="PDP"项目的可视模板。

<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100" Header="PDP"> 
    <dataGrid:DataGridTemplateColumn.HeaderStyle> 
     <Style TargetType="{x:Type Primitives:DataGridColumnHeader}"> 
       <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
       <Setter Property="VerticalContentAlignment" Value="Center" /> 
     </Style> 
    </dataGrid:DataGridTemplateColumn.HeaderStyle> 
    <dataGrid:DataGridTemplateColumn.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" TextAlignment="Center" /> 
     </DataTemplate> 
    </dataGrid:DataGridTemplateColumn.HeaderTemplate> 
</dataGrid:DataGridTemplateColumn> 
4

取下的TextBlock的HorizontalAlignment="Center"或属性设置为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> 

最好的问候,
奥利弗Hanappi

相关问题