Доброго времени суток! Есть у меня список, который сгрупирован по полю "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? Спасибо за помощь!
--------------------
The more closely you look at one thing, the less closely can you see something else.
|