Ik heb een hele reeks met POCO's (Plain Old CLR objects), of eigenlijk business entities. Het zijn slechts placeholders van data, meer niet. Deze leidt af van een base entity waar 3 properties op zitten: IsDeleted, HasChanged, IsNew.
Ik heb een scherm gemaakt met bovenaan enkele textboxes en daaronder een datagridview. Deze is via het bindingmechanisme aan elkaar gekoppeld. De entities zijn opgeslagen in een List<T>, deze is dus gekoppeld aan de grid en textboxes.
Als ik een rij verwijder, zet ik de IsDeleted op TRUE en doe ik een actieve filtering op de List<T> middels een Predicate<T> aka
En daarna bind ik 'm opnieuw en het werkt goed: de grid wordt netjes gefiltered zodat de verwijderde entity uit de lijst verdwijnt. Echter.... nu het probleem:
Ik wil op de OK click van de form de List<T> wegschrijven naar een file. Nu wil ik itereren door de List<T> en afhankelijk van de 3 bovengenoemde properties verschillende CRUD operaties op de file uitvoeren. Alleen het probleem is nu dat door de gefilterde List<T> mijn entity echt verdwenen is (want ik vervang de List<T> door de nieuw gefilterede variant).
Nu zit ik te dubben hoe ik dit op een simpele, elegante wijze kan oplossen... hebben jullie ideeën?
Ik heb een scherm gemaakt met bovenaan enkele textboxes en daaronder een datagridview. Deze is via het bindingmechanisme aan elkaar gekoppeld. De entities zijn opgeslagen in een List<T>, deze is dus gekoppeld aan de grid en textboxes.
Als ik een rij verwijder, zet ik de IsDeleted op TRUE en doe ik een actieve filtering op de List<T> middels een Predicate<T> aka
code:
1
2
3
4
| this.productList = this.productList.FindAll(delegate(Product product)
{
return product.IsDeleted = false;
}) |
En daarna bind ik 'm opnieuw en het werkt goed: de grid wordt netjes gefiltered zodat de verwijderde entity uit de lijst verdwijnt. Echter.... nu het probleem:
Ik wil op de OK click van de form de List<T> wegschrijven naar een file. Nu wil ik itereren door de List<T> en afhankelijk van de 3 bovengenoemde properties verschillende CRUD operaties op de file uitvoeren. Alleen het probleem is nu dat door de gefilterde List<T> mijn entity echt verdwenen is (want ik vervang de List<T> door de nieuw gefilterede variant).
Nu zit ik te dubben hoe ik dit op een simpele, elegante wijze kan oplossen... hebben jullie ideeën?