XAML - 组头标题样式中的绑定组标题

时间:2017-06-05 23:44:54

标签: c# wpf xaml datagrid

不尝试发布此帖子的副本: WPF - Binding to current item from within group header style

我得到了绑定工作。我不清楚它为什么会起作用。 XAML的这一部分设置组项并将Texbox绑定到文本。我不明白的是对“姓名”的约束力。属性。什么是'姓名'属性?小组头?直到我找到链接的线程,我试图绑定到数据网格中的项目上的属性。

 <ControlTemplate TargetType="{x:Type GroupItem}">
      <Expander IsExpanded="True"
                Background="#FF112255"
                BorderBrush="#FF002255"
                Foreground="#FFEEEEEE"
                BorderThickness="1,1,1,5">
         <Expander.Header>
           <StackPanel Orientation="Horizontal">
              <TextBlock FontWeight="Bold"
                         Text="SVC Node: "/>
                 <TextBlock FontWeight="Bold"
                            Text="{Binding Name}"/>
             </StackPanel>
           </Expander.Header>
         <Expander.Content>
        <ItemsPresenter />
       </Expander.Content>
      </Expander>
  </ControlTemplate>

2 个答案:

答案 0 :(得分:1)

Name指的是由{WPF'创建的System.Windows.Data.CollectionViewGroup对象的属性,并被设置为DataContext的{​​{1}}。

此属性返回您对源集合进行分组的属性的值。因此,如果您通过名为GroupItem的属性对Person个对象的源集合进行分组,则Sex的{​​{1}}属性将返回类似“男性”或“女性”的内容”。此Name属性不是自定义模型类的属性。

CollectionViewGroup类还有一个Name属性,用于返回对象集合,例如CollectionViewGroup属性返回“Male”的所有Items个对象,属于特定群体。

希望这是有道理的。

答案 1 :(得分:0)

如果您的模型包含Name属性,并且GroupItem的DataContext包含相同的模型对象,则Name属性可见并且能够在控件模板内访问。因此,名称属性绑定在TextBlock中起作用。

更新:  根据我的分析,相应的分组属性已内部分配到组项的名称属性,SO自动导出到其子项, enter image description here