Нов съм в Databinding в .NET и искам да свържа моя DataGridView към списък с обекти. Тази мрежа може да се попълва по два начина.
Във формата има текстови полета и потребителите могат да въвеждат текст и когато натиснат бутона Добавяне, нов обект се инстанцира с предоставените полета и се добавя към списъка.
Друг начин е, когато потребителят търси обекти, съвпадащите обекти се зареждат от базата данни в списъка. Освен това след търсене потребителите трябва да могат да добавят нови елементи към този списък, както при първия метод.
Накрая този списък е обвързан с DataGridView и сега потребителят може да направи всякакви промени в елементите, показани в мрежата, и ако всичко е наред, потребителят може да ги запази.
Така че в моя презентатор имам три метода за горните изисквания.
Class AttendancePresenter
{
private void AddAttendance()
{
AttendanceList.Add(attendanceModel);
var bindingList = new BindingList<IAttendance>(AttendanceList);
var source = new BindingSource(bindingList, null);
_View.AttendanceGrid = source;
}
private void GetAttendance()
{
AttendanceList = _DataService.GetAttendance();
var bindingList = new BindingList<IAttendance>(AttendanceList);
var source = new BindingSource(bindingList, null);
_View.AttendanceInGrid = source;
}
private void Save()
{
_DataService.InsertAttendance (AttendanceList);
}
}
Не съм сигурен, че начинът, по който съм обвързал нещата, е правилен. И също така се чудя дали мога да използвам единичен списък за обвързване тук, тъй като обвързвам същия списък към същия DataGridView! Възможно ли е?
Каква е разликата в използването на BindingSource заедно и с BindingList в този контекст?