数据网格组头中的绑定

时间:2012-07-03 15:30:17

标签: wpf datagrid groupstyle

我想在数据网格的组头中看到每列的一些附加信息。标题包含一个Stackpanel,其中包含一些子Stackpanel。 由于用户可以调整数据网格列的大小,我必须调整单个标题部分的大小,将它们的宽度绑定到相应列的宽度:

 <ControlTemplate TargetType="{x:Type GroupItem}">
     <Expander IsExpanded="False">
         <Expander.Header>
             <StackPanel Orientation="Horizontal">
                  <StackPanel 
                       Orientation="Horizontal"
                       Width="{Binding Source={x:Reference TextCol01}, Path=ActualWidth}" >
                       <TextBlock Text="{Binding Path=Name}" />
                       <TextBlock Text=" ("/>
                       <TextBlock Text="{Binding Path=ItemCount}" FontSize="13" FontWeight="Bold"/>
                       <TextBlock Text=")"/>
                   </StackPanel>
                   <StackPanel 
                       Orientation="Horizontal">
                       <TextBlock Text="{Binding Path=Name}" />
                       <TextBlock Text=" ("/>
                       <TextBlock Text="{Binding Path=ItemCount}" FontSize="13" FontWeight="Bold"/>
                       <TextBlock Text=")"/>
                   </StackPanel>
                </StackPanel>
             </Expander.Header>
          <ItemsPresenter />
      </Expander>
  </ControlTemplate>

没有绑定Width(Width =“{Binding Source = {x:Reference TextCol01},Path = ActualWidth}”)对Name的绑定和CollectionViewGroup的ItemCount非常完美。但是绑定Width会失败。

我想这与Binding Source有关。这会改变背景。但我不知道它到底出了什么问题。

有人可以帮忙吗?谢谢!

1 个答案:

答案 0 :(得分:1)

我明白了。这种绑定宽度的方法运行良好:

Width="{Binding ElementName=TextCol01, Path=ActualWidth}"

这不起作用:

Width="{Binding Source={x:Reference TextCol01}, Path=ActualWidth}"

它独立工作,但与ItemCount和Name的绑定一起导致失败。