I have a ObservableCollection that contains data from a database using Linq. I need to only have specific filtered items of that collection to be shown in my listbox.
I have created a ICollectionView which i initialized as the default view from that ObservableCollection. Then i am trying to filter that view by using linq and there lies the problem. My 'filter' returns an IEnumerable and i dont know how to properly cast that to my view so i can show the view in my listbox.
The ObservableCollection:
private ObservableMitarbeiterAufgabe mitarbeiterAufgabeData;
The view:
ICollectionView view = CollectionViewSource.GetDefaultView(mitarbeiterAufgabeData);
My filter that isnt working because it returns an IEnumerable:
var selected = (Mitarbeiter)lb_Ma_Au_Zuweisung.SelectedItem;
view.Filter = from ma in selected.MitarbeiterAufgabe select ma.Aufgaben;
How can i make my filter accept an IEnumerable?
Edit: added the complete datastructure.
CREATE TABLE [dbo].[Mitarbeiter] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Vorname] VARCHAR (50) NOT NULL,
[Nachname] VARCHAR (50) NOT NULL,
[Belastung] INT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
CREATE TABLE [dbo].[Aufgaben] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[Beschreibung] NVARCHAR (50) NOT NULL,
[Belastung] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
CREATE TABLE [dbo].[MitarbeiterAufgabe] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[MitarbeiterID] INT NOT NULL,
[AufgabenID] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_MitarbeiterID] FOREIGN KEY ([MitarbeiterID]) REFERENCES [dbo].[Mitarbeiter] ([Id]),
CONSTRAINT [FK_AufgabenID] FOREIGN KEY ([AufgabenID]) REFERENCES [dbo].[Aufgaben] ([Id])
);
var selected = (Mitarbeiter)lb_Mitarbeiter_Zuweisung.SelectedItem;
stores an object from the table 'Mitarbeiter'. I need the filter to give me every entry from 'MitarbeiterAufgabe' where MitarbeiterID matches the id of the selected item.
The filter is supposed to be a function that checks whether an item is to be included or not
you are actually already doing all the filtering yourself by coming up with the list of all correct items.
your filter could look something like this:
without knowing the exact data structures, it's not possible to give a precise answer here..