2010-10-07 125 views
1

這是我第一次發佈圖片,所以希望結果很好(圖片勝過千言萬語,而且我不想輸入一千字)。但是,下面的圖片是我想要完成的。WPF ItemsControl ItemTemplate與GroupStyle的邊框

我有一個對象的集合,我需要按屬性「Group」進行分組。我正在使用綁定到正在爲我進行分組的數據源的CollectionViewSource。

我正在使用ItemsControl控件(但可以很容易地使用另一個控件)來顯示此信息。我可以按照屬性對信息進行分組,但我希望能夠用邊框包圍整個組。我不想圍繞整個團隊中的每個項目。

我該如何完成類似下面的圖片以及整個組的邊框?

alt text

回答

2

這樣的事情應該做的伎倆。使用這個作爲你的組風格。您可能會想要更多地進行自定義,但您應該能夠從此片段中獲得一般想法。

要知道的主要事情是你綁定到一個GroupItem。基本上,GroupItem上有3個屬性。 (組的名稱),ItemCount(分組中的項目數)和項目本身。

<ControlTemplate TargetType="{x:Type GroupItem}"> 

    <Border BorderBrush="Black" BorderThickness="1" Margin="5"> 
     <StackPanel> 
      <TextBlock Text="{Binding Name}"/> 
      <Border BorderBrush="Black" BorderThickness="1" Margin="0,0,0,0"> 
       <ItemsPresenter /> 
      </Border> 
     </StackPanel> 
    </Border> 

</ControlTemplate> 

編輯: 當你組項目的集合,來源是不是你的項目的集合,但GroupItems的集合,至極則包含您的收藏屬於該組的項目。這就是爲什麼x:Type是GroupItem。這裏不需要任何綁定,除了您希望顯示的GroupItem的屬性。

你應該把這個在您的<ItemControl> XAML像這樣:

<ItemsControl> 
     <ItemsControl.GroupStyle> 
<!-------------- style from above goes here ---------------> 
     <ItemsControl.GroupStyle/> 
    <ItemsControl/> 

here是在WPF分組來幫助你的文章。

+0

我不確定我看到連接到您將它放入XAML的位置。爲什麼你要聲明x:Type作爲GroupItem?你在哪裏綁定itemssource,你在哪裏使用這個控件模板? – Miles 2010-10-08 16:11:17