Доброго времени суток!
Есть у меня список, который сгрупирован по полю "Group"
| Код | researchList = new ObservableCollection<ListClass>(); ICollectionView view = CollectionViewSource.GetDefaultView(researchList); view.GroupDescriptions.Add(new PropertyGroupDescription("Group")); //view.SortDescriptions.Add(new SortDescription("Group", ListSortDirection.Descending)); ResearchList.ItemsSource = view;
|
| Код | <ListBox Name="ResearchList" Grid.Row="0" HorizontalContentAlignment="Stretch" BorderThickness="0" ItemTemplate="{StaticResource OpenResearchTmpl}" ItemContainerStyle="{StaticResource OpenResearchListBoxItem}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" IsSynchronizedWithCurrentItem="True" SelectionChanged="ResearchList_SelectionChanged" Margin="4"> <ListBox.GroupStyle> <GroupStyle HidesIfEmpty="True"> <GroupStyle.ContainerStyle> <Style TargetType="{x:Type GroupItem}"> <Setter Property="Margin" Value="0,0,0,2"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupItem}"> <Border CornerRadius="0" Background="#FFF5F5F5" SnapsToDevicePixels="True" BorderThickness="1" BorderBrush="#FFC4C4C4"> <Expander IsExpanded="True" x:Name="expander" BorderThickness="0" Template="{StaticResource StretchyExpanderTemp}"> <Expander.Header> <DockPanel Height="32"> <TextBlock HorizontalAlignment="Stretch" VerticalAlignment="Center" FontWeight="Bold" FontSize="12" Text="{Binding Path=Name}" Margin="5,0,0,0"/> </DockPanel> </Expander.Header> <Expander.Content> <Border Background="White"> <ItemsPresenter /> </Border> </Expander.Content> </Expander> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> </GroupStyle.ContainerStyle> </GroupStyle> </ListBox.GroupStyle> </ListBox>
|
в итоге получается список вида: + Группа 1 = эл. группы 1 = эл. группы 1 + Группа 2 = эл. группы 2 = эл. группы 2
Понадобилось сгрупировать некоторые элементы еще по одному параметру, при этом другие элементы группировать не нужно + Группа 1 + Подгруппа 1 = эл. подгруппы 1 = эл. подгруппы 1 + Подгруппа 2 = эл. подгруппы 2 + Группа 2 = эл. группы 2 = эл. группы 2
Как такое можна сделать с помощью ListBox или ListView? Спасибо за помощь! |