Здравствуйте.
Поделитесь пожалуйста примером, как привязать entity коллекцию к DataGrid, чтобы отображались в гриде изменения, сделанные с entity?
Если делать так, как делает визуальный редактор в Visual Studio 2010, то изменения идут только от DataGrid к entity коллекции.
Отвечаю сам себе, может кому-нибудь пригодится.
Изменения в ObjectSet<> не отображаются в DataGrid по той причине, что ObjectSet<> не реализует интерфейс INotifyCollectionChanged. (MS обещает это только в следующей версии).
Поэтому нормально привязать к DataGrid можно только ObservableCollection<>.
ObservableCollection<MyEntity> list = ObservableCollection<MyEntity>(context.MyEntites);
dataGrid.ItemsSource = list;
Новый объект соответственно добавлять к list, в context.MyEntites он попадёт автоматом.
Странно, что никто не ответил, неужели так непопулярен DataGrid в связке с Entity Framework? По-моему очень удобно для не сложных проектов.
BM>BM>ObservableCollection<MyEntity> list = ObservableCollection<MyEntity>(context.MyEntites);
BM>dataGrid.ItemsSource = list;
BM>
а можно подробнее описать что такое MyEntity а особенно context.MyEntites?
Здравствуйте, Barlog M., Вы писали:
BM>BM>ObservableCollection<MyEntity> list = ObservableCollection<MyEntity>(context.MyEntites);
BM>dataGrid.ItemsSource = list;
BM>
BM>Новый объект соответственно добавлять к list, в context.MyEntites он попадёт автоматом.
А что нужно сделать, чтобы новый объект попадал из list в context.MyEntites автоматически? По умолчанию этого не происходит.
Здравствуйте, VetalPPC, Вы писали:
VPP>Здравствуйте, Barlog M., Вы писали:
BM>>BM>>ObservableCollection<MyEntity> list = ObservableCollection<MyEntity>(context.MyEntites);
BM>>dataGrid.ItemsSource = list;
BM>>
BM>>Новый объект соответственно добавлять к list, в context.MyEntites он попадёт автоматом.
VPP>А что нужно сделать, чтобы новый объект попадал из list в context.MyEntites автоматически? По умолчанию этого не происходит.
IMHO, нужно следовать архитектуре MVVM. list — это должно быть свойство ViewModel. Синхронизация этого листа с entity коллекциями — также забота ViewModel.
MVVM не решит эти проблемы как таковые, но зато позволит разбить программу на слои с четко определенной ответственностью. И тогда даже большое количество рутинного кода, всяких адаптеров и костылей не превратит ее (программу) в помойку.