2012-08-13 24 views
9

Na poniższym obrazku "MyCars" jest zbiorem. Jeśli właściwość obiektu jest kolekcją, to w polu PropertyGrid wartość pojawia się jako ciąg "(kolekcja)" z przyciskiem po prawej stronie, jeśli element jest zaznaczony.Zmiana wartości elementu właściwości w PropertyGrid

Czy można zmienić wartość "(Odbiór)"? Jeśli tak to jak? Powodem, dla którego pytam, jest to, że zaimplementowałem niestandardowy UITypeEditor dla obiektu, który pojawi się w PropertyGrid w moim programie. Jak dotąd pojawia się przycisk po prawej stronie, ale wartość tekstowa jest taka sama, jak wyświetlana nazwa właściwości. Chciałbym, żeby pojawił się tam inny ciąg znaków.

Example propertygrid.

Edit: za to, co warte, wiem, że mogę zastąpić metodę z UITypeEditor PaintValue i zapewniają ikonę, która może skończę robić, jeśli nie mogę rozwiązać ten problem, ale ja nadal lubię wiedzieć, czy i jak ten tekst "(kolekcja)" może zostać zmieniony.

+0

Wydaje mi się, że w dalszym ciągu z "(kolekcja)" obok ikony, jeśli użyłbyś metody PaintValue, ale nie wiesz. –

Odpowiedz

7

Ten artykuł może być pomocny.


** UPDATE **

Aby zapewnić skrócona wersja artykułu (w przypadku łącza będącego niedostępne), kolejne etapy dostosowywania wyświetlacz oraz opis zawartości kolekcji w sposób PropertyGrid są następujące:

  1. niestandardową deskryptor nieruchomości poprzez wyprowadzenie klasy tworzą abstrakcyjną klasę bazową PropertyDescriptor.
  2. Zastępuj abstrakcyjne metody i właściwości. Zapewnij odpowiednią implementację dla właściwości DisplayName i opisu.
  3. Pozwól swojej klasie kolekcji zaimplementować interfejs ICustomTypeDescriptor.
  4. Zwraca kolekcję niestandardowego deskryptora właściwości metodą GetProperties().
  5. Opcjonalnie można użyć obiektów pochodnych od TypeConverter dostarczonych przez .NET lub zaimplementować własne klasy w celu dostosowania tekstowej reprezentacji klas domeny. Przypisuj je do odpowiednich klas lub właściwości, używając klasy TypeConverterAttribute.

Aby dokonać globalizacji danych PropertyGrid, deskryptory właściwości można połączyć ze sobą (patrz także: Globalized property grid).

+1

^To jest odpowiedź! –

+1

Wow! To się udało! Dzięki! – kevin628