Uwielbiam PropertyGrid, cóż, przynajmniej koncepcja za nim - użyj refleksji i atrybutów do edycji swoich obiektów bez pisania zbyt wiele kodu UI.Alternatywne właściwości PropertyGrid
Moje podekscytowanie dość szybko wyszło, domyślna usługa PropertyGrid jest dostarczana z programem WinForms. Cóż, to jest w porządku do edycji prostych obiektów i takich, ale to jest tak daleko, jak to możliwe.
- Nie wyświetla odpowiednich wskaźników UITypeEditors dla właściwości dynamicznych, które mają typ "Object".
- Gdy tylko twoje obiekty zawierają kolekcje, możesz je edytować za pomocą tak zwanego CollectionEditor. Jednak nie uruchomi zdarzenia PropertyValueChanged. Więc gdy chcesz dodać funkcję cofania, jesteś spieprzony.
- Nadal nie znalazłem eleganckiego sposobu dodawania sprawdzania poprawności dla CollectionEditor.
- Problematyczne jest również zaimplementowanie cofnięcia, jeśli wybrano wiele obiektów, ponieważ w tym przypadku zmienna zdarzenia ValueVenda została null.
Wkrótce zacząłem pisać hacki, aby rozwiązać te problemy z mniej niż przyjemnymi wynikami.
Co byś zrobił? Czy istnieje eleganckie rozwiązanie co najmniej pierwszych trzech problemów? Czy istnieje alternatywna usługa? Najlepiej za darmo & bez PInvokes?
Jeśli chodzi o propertychowaną kolekcję. Byłbym zmartwiony, gdyby coś zmieniło referencję instancji kolekcji. Pomyśl o tym. – leppie