Я новичок в WPF и пытаюсь внедрить модель MVVM в свое приложение WPF. У меня есть такой сценарий: модель Customers, представление клиента, CUstomersViewModel и класс Dbcontext.
Модель Customers.cs
public partial class Customers
{
public int Id { get; set; }
public string Customer { get; set; }
}
MyDbContext.cs
public partial class MyDbContext: DbContext
{
public MyDbContext()
{
}
public MyDbContext(DbContextOptions<MyDbContext> options)
: base(options)
{
}
public virtual DbSet<Customers> Customers { get; set; }
public virtual DbSet<Users> Users{ get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
// ..............
}
}
CustomersViewModel.cs
class CustomersViewModel
{
public ObservableCollection<Customers> Customers { get; set; }
public CustomersViewModel()
{
using (MyDbContext db = new MyDbContext())
{
Customers = new ObservableCollection<Customers>(db.Customers.ToList());
}
}
}
На мой взгляд, я привязываю ViewModel к комбинированному списку:
<Window.Resources>
<ViewModels:CustomersViewModel x:Key="CustomerViewModel"/>
</Window.Resources>
...
<ComboBox x:Name="cboCustomers" Grid.Row="2"
DataContext="{StaticResource CustomerViewModel}"
ItemsSource="{Binding Customers}"
DisplayMemberPath="Customer"/>
Это прекрасно работает. Однако (это может быть глупый вопрос), если я хочу добавить больше запросов, таких как получение клиентов по Id, группирование клиентов по определенному столбцу или обновление клиента, где мне нужно будет добавить их?
Customers = new ObservableCollection<Customers>(db.Customers.Where(....))..
В классе Viewmodel? Конструктор ViewModel на данный момент получает всех клиентов.