2017-06-05 39 views
0

不嘗試後該線程的重複: WPF - Binding to current item from within group header styleXAML - 綁定組頭在組頭樣式

我得到的結合工作。我不清楚它爲什麼有效。 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> 

回答

1

NameSystem.Windows.Data.CollectionViewGroup對象獲得的財產由WPF創建並設置爲GroupItemDataContext

此屬性返回您將源集合分組的屬性的值。因此,例如,如果您將Person對象的源集合通過名爲Sex的屬性進行分組,CollectionViewGroupName屬性將返回類似「男性」或「女性」的內容。這Name屬性不是您的自定義模型類的屬性。

CollectionViewGroup類還具有一個Items屬性,返回對象的集合,例如,所有對象Person其中Sex屬性返回「男性」,屬於該特定的組。

希望是有道理的。

+0

謝謝。這是我得出的結論。我鏈接到的Microsoft示例還包含綁定到Datagrid中的項目屬性的第二個文本框。這是我第一次做這件事使我感到困惑。 –

0

,如果你的模型中包含了Name屬性,也GroupItem的DataContext的含有相同的模型對象,然後Name屬性可見,並且能夠控制模板中訪問。所以名稱屬性綁定在TextBlock中起作用。

更新時間: 根據我的分析,相應的分組物業內部已經分成組項目的名稱屬性,因此它會自動導出到其孩子的, enter image description here

+0

這就是我感到困惑。我的模型,以及我的對象集合,集合中的對象沒有Name屬性,它仍然有效。此示例由Microsoft提供:https://msdn.microsoft.com/en-us/library/ff407126(v=vs.110).aspx在Task類中沒有Name屬性,但它起作用。我認爲綁定是集合中某個對象的屬性,顯然它不是。 –

+0

我已經更新了上面的ans請檢查 – SharpGobi