Как реализовать паттерн MVVM в WPF, используя модель данных Ado.NET?
У меня есть БД Northwind, модель которой я добавил в проект:
После создания модели данных обычно я заполняю класс Core следующим образом:
public static class Core
{
public static NorthwindEntities db = new NorthwindEntities();
}
И использую на страницах что-то подобное:
public partial class CategoriesTablePage : Page
{
public CategoriesTablePage()
{
InitializeComponent();
AllCategories = Core.db.Categories.ToList();
DataContext = this;
}
public List<Categories> AllCategories { get; set; }
}
Но из-за такого подхода в один момент на странице накапливается много ненужного кода, который не структурирован и все превращается в нечитаемую кашу. Как вы реализуете MVVM при работе с БД?
public List<Categories> AllCategories { get; set; }(ну и собственно заполнение листа) переместить во ViewModel, которая связана с View – Pekor Aug 25 '22 at 15:20DataContextможно и лучше прописать в XAML – Pekor Aug 25 '22 at 15:21DataContext, это нарушение MVVM. А в вопросе он вообще непойми зачем указан... – EvgeniyZ Aug 25 '22 at 16:18static, если вы такое пишете, то это сразу означает то, что вы делаете что-то не то. У вас должен быть класс, в котором должны быть прописаны все методы для взаимодействия с базой (напримерList<Categories> AllCategories- это Model слой, а вы пишете это вPage, что являетсяViewслоем. Ваш View слой не должен вообще знать что-либо о других слоях (как о Model, так и ViewModel). Поймите что такое слои в MVVM (Model- данные,View- вид приложения (UI),ViewModel- связующий слой, который делает свойства для привязки View и общается с Model), сейчас у вас каша. – EvgeniyZ Aug 25 '22 at 16:22