2017-01-19 15 views
0

ObservableCollectionCollectionViewSourceを使用してグループ化しようとしていますが、項目は機能しているようですが、GroupBoxのバインドプロパティ値は表示されません。ItemsControlでグループ化した後、グループの見出しが表示されない

を私はList<Object>は、シーズンをプロパティの説明を含むました:ここ

は私がしようとしているものです。私は季節ごとにグループ化したいここに私のXMLは次のとおりです。

<mah:MetroWindow x:Class="eCatalog_Launcher.MainWindow" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:local="clr-namespace:eCatalog_Launcher" 
      xmlns:mah="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro" 
      xmlns:iconPacks="http://metro.mahapps.com/winfx/xaml/iconpacks" 
      mc:Ignorable="d" 
      Title="eCatalog Launcher" 
      WindowState="Maximized" 
      Loaded="MetroWindow_Loaded" 
      Closing="MetroWindow_Closing"> 

<Window.Resources> 
    <CollectionViewSource x:Key="catalogsBySeasons" 
          Source="{Binding Path=Catalogs, Mode=TwoWay}"> 
     <CollectionViewSource.GroupDescriptions> 
      <PropertyGroupDescription PropertyName="Season" /> 
     </CollectionViewSource.GroupDescriptions> 
    </CollectionViewSource> 

</Window.Resources> 

<ScrollViewer> 
    <ItemsControl ItemsSource="{Binding Source={StaticResource catalogsBySeasons}}"> 
     <ItemsControl.GroupStyle> 
      <GroupStyle> 
       <GroupStyle.ContainerStyle> 
        <Style TargetType="{x:Type GroupItem}"> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate TargetType="{x:Type GroupItem}"> 
            <GroupBox Header="{Binding Season}"> 
             <ItemsPresenter /> 
            </GroupBox> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </GroupStyle.ContainerStyle> 
      </GroupStyle> 
     </ItemsControl.GroupStyle> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <mah:Tile Title="{Binding Description}" 
          Tag="{Binding}" 
          Style="{StaticResource SmallTileStyle}" 
          Click="Tile_Click"> 
        <iconPacks:PackIconMaterial Width="32" 
               Height="32" 
               Margin="0, -30, 0, 0" 
               Kind="{Binding Kind}"> 
        </iconPacks:PackIconMaterial> 
       </mah:Tile> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel /> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
    </ItemsControl> 
</StackPanel> 

それはGroupBox見出しとしてシーズン値を示しています。 間違い有りますか?

答えて

1

あなたはグループの名前プロパティにバインドする必要があります。

<ControlTemplate TargetType="{x:Type GroupItem}"> 
    <GroupBox Header="{Binding Name}"> 
     <ItemsPresenter /> 
    </GroupBox> 
</ControlTemplate> 

これはグループによるシーズンプロパティの実際の値を表示する必要があります。

+0

はい、それは '名前'とうまくいっています。ありがとう! – Saadi

関連する問題