У меня есть ObservableCollection, который содержит данные из базы данных с использованием Linq. Мне нужно, чтобы в моем списке отображались только определенные отфильтрованные элементы этой коллекции.
Я создал ICollectionView, который я инициализировал как представление по умолчанию из этого ObservableCollection. Затем я пытаюсь отфильтровать это представление с помощью linq, и в этом заключается проблема. Мой «фильтр» возвращает IEnumerable, и я не знаю, как правильно преобразовать его в свое представление, чтобы я мог отобразить представление в своем списке.
Наблюдаемая коллекция:
private ObservableMitarbeiterAufgabe mitarbeiterAufgabeData;
Вид:
ICollectionView view = CollectionViewSource.GetDefaultView(mitarbeiterAufgabeData);
Мой фильтр, который не работает, потому что он возвращает IEnumerable:
var selected = (Mitarbeiter)lb_Ma_Au_Zuweisung.SelectedItem;
view.Filter = from ma in selected.MitarbeiterAufgabe select ma.Aufgaben;
Как я могу заставить свой фильтр принимать IEnumerable?
Изменить: добавлена полная структура данных.
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;
хранит объект из таблицы «Митарбайтер». Мне нужен фильтр, чтобы дать мне каждую запись из «MitarbeiterAufgabe», где MitarbeiterID соответствует идентификатору выбранного элемента.