Baza -> DataGrid -> Grupowanie WPF

Dyskusje na temat języka C# oraz biblioteki .NET
albin
Początkujący
Początkujący
Posty: 17
Dołączył(a): wtorek, 2 grudnia 2014, 15:00

Baza -> DataGrid -> Grupowanie WPF

Post przez albin »

Witam.
Mam przykładowa baze imie, nazwisko, rodzaj aktywnsci, data
Pobieram dane z bazy danych wedle kryterium daty i wyswietlam je DataGridzie.
Jest wszystko ok.
A teraz chce wszystko pogrupowac naprzykład według rodzaju aktywności, albo daty...

Jak to sprytnie zrobić, w necie jest mnostwo przykladow grupowania kolekcji, czy w takim razie to co otrzymuje wczytac do jakiejs
listy a pozniej to pogrupować? (jak to zrobić?).
Pzdr...
aszusz
Moderator
Moderator
Posty: 3
Dołączył(a): środa, 25 lutego 2015, 22:12

Re: Baza -> DataGrid -> Grupowanie WPF

Post przez aszusz »

Cześć :)

Właśnie tak, jak napisałeś. Z tego co się orientuję, to kiedy bindujesz DataGrid.ItemsSource do jakiejś kolekcji, to ta kolekcja zostaje sama opakowana przez WPF w CollectionView. Kiedy jednak chcesz dodać do niej grupowanie musisz sam opakować ją ręcznie. Oto prosty przykład:

Code: Zaznacz cały

public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();

            var people = new List<Person>
            {
                new Person {FirstName = "Adrian", LastName = "Szuszkiewicz", Tier = 1},
                new Person {FirstName = "Jan", LastName = "Kowalski", Tier = 2},
                new Person {FirstName = "Arkadiusz", LastName = "Włodarczyk", Tier = 1},
                new Person {FirstName = "Grzegorz", LastName = "Nowak", Tier = 2}
            };

            var view = new ListCollectionView(people);
            if (view.GroupDescriptions != null)
            {
                view.GroupDescriptions.Add(new PropertyGroupDescription("Tier"));
            }
            DataContext = view;
        }
    }

Code: Zaznacz cały

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    
    <Grid>
        <DataGrid ItemsSource="{Binding}">
            <DataGrid.GroupStyle>
                <GroupStyle>
                    <GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <TextBlock Text="Tier"></TextBlock>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>
                </GroupStyle>
            </DataGrid.GroupStyle>
        </DataGrid>
    </Grid>
    
</Window>
albin
Początkujący
Początkujący
Posty: 17
Dołączył(a): wtorek, 2 grudnia 2014, 15:00

Re: Baza -> DataGrid -> Grupowanie WPF

Post przez albin »

Dopiero tera przeczytałem odpowiedź, za która dziękuję, zrobiłem podobnie :).
Post Reply