Witam,
Próbuję wykorzystać kontrolkę System.Windows.Forms.PropertyGrid do ustawiania właściwości obiektu. Mój obiekt ma wiele właściwości które nie powinny być widoczne w tym okienku. Mój obiekt jest bindowany w programie.
Próbowałem nadać niechcianej właściwości atrybuty:
[Browsable(false)]
[Bindable(true)]
Zmiana widoczności właściwości działa dobrze ale pokazuje też się niechciany efekt uboczny a mianowicie, atrybut Browsable(false) powoduje że właściwość nie może być bindowana. Nigdzie w dokumentacji atrybutu nie znalazłem że takie jest jego zachowanie. Przeglądałem także inne fora w poszukiwaniu pomocy i nic. Wygląda na to że atrybut Browsable(false) poprostu ustawia Bindable na false i dlatego nie widać danej właściwości w PropertyGrid.
Jednym ze sposobów jaki na szybko przyszedł mi do głowy do nadanie odpowiedniej kategorii "chcianym" i "niechcianym" właściwościom i następnie przekazanie użytkownikowi informacji żeby korzystał z właściwości tylko z "chcianej" kategorii ale to jest baaardzo niefajne.
edit: Dodatkowo można dać atrybut ReadOnlyAttribute na "niechciane" właściwości ale to nadal jest niefajne.
Wydaje mi się że takie zachowanie to bug frameworka zwłaszcza że na w wersji 1.1 działa dobrze a w 2.0 już nie - na podstawie wpisu na social.msdn.microsoft.com/...
edit: Dodam jeszcze że zachowanie to się objawia gdy bindujemy coś do właściwości a nie właściwość do czegoś
Ma ktoś pomysł co robię źle albo co zrobić żeby działało tak jak chcę?