Фильтрация ObservableCollection с сохранением привязки к контексту EF Core

Доброе время суток. Есть класс Card который реализует интерфейс INotifyPropertyChanged, который хранится в бд, данные из бд передаю в ObservableCollection. Как реализовать фильтрацию по этой коллекции с сохранением привязки, т.е. если я добавлю, удалю, редактирую через контекст бд, то это автоматически изменяло ObservableCollection и отображалось во View????

public class Card : INotifyPropertyChanged
{
    public int Id { get; set; }
    private string? _name;
    public string? Name
    {
        get { return _name; }
        set
        {
            _name = value;
            OnProperyChanged("Name");
        }
    }
    private string? _description;
    public string? Description
    {
        get { return _description; }
        set
        {
            _description = value;
            OnProperyChanged("Description");
        }
    }
   
    public event PropertyChangedEventHandler? PropertyChanged;
    public void OnProperyChanged([CallerMemberName] string prop = "")
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(prop));
    }
}
 public class ApplicationContext : DbContext
 {
     public DbSet<Card> Cards { get; set; } = null!;
     public ApplicationContext() => Database.EnsureCreated();

     protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
     {
         optionsBuilder.UseSqlite("Data Source = database.db");
     }
 }
 public class CardViewModel
 {
     ApplicationContext db;
     public ObservableCollection<Card> Cards { get; set; }
     public CardViewModel()
     {
         db = new ApplicationContext();
         db.Cards.Load();
         Cards = new ObservableCollection<Card>(db.Cards.Local.Where(card => card.Id > 10));
     }  
 }

Code behind:

 public partial class CardsWindow : Window
 {
    
     public CardsWindow()
     {
         InitializeComponent();
         DataContext = new CardViewModel();
     }
 }

В View привязываю так:

            <ListBox x:Name="cardsListBox"
                 ItemsSource="{Binding Cards}">
            </ListBox>

Если данные передавать в Cards через db.Cards.Local.ToObservableCollection(), такой метод работает, но как фильтровать потом не понятно.


Ответы (0 шт):