|
Hallo,
ich habe folgendes Beispiel implementiert:
in einer WinForm ein PropertyGrid eingef�gt und beim Laden des Forms folgendes gemacht
Dim Pers As New Mitglied Me.PropertyGrid1.SelectedObject = Pers
Hier die Beschreibung der 3 beteiligten Klassen:
------ Imports System.ComponentModel
<TypeConverter(GetType(PersonConverter))> _ Public Class Person Private _firstName As String = "Oskar" Private _age As Int16 = 5
Public Property Age() As Int16 Get Return _age End Get Set (ByVal Value As Int16) _age = Value End Set End Property
Public Property FirstName() As String Get Return _firstName End Get Set (ByVal Value As String) Me._firstName = Value End Set End Property End Class ------
Public Class Mitglied Private _p As New Person Public Property P() As Person Get Return _p End Get Set(ByVal Value As Person) _p = Value End Set End Property End Class ------
Imports System.ComponentModel
Public Class PersonConverter Inherits TypeConverter Public Overloads Overrides Function GetProperties(ByVal context As ITypeDescriptorContext, ByVal value As Object, ByVal filter() As Attribute) As PropertyDescriptorCollection Return TypeDescriptor.GetProperties(value) End Function Public Overloads Overrides Function GetPropertiesSupported(ByVal context As ITypeDescriptorContext) As Boolean Return True End Function End Class ------
Alles klappt wunderbar. Wenn ich im PropertyGrid auf die Eigenschaft "P", welche ja ein Objekt darstellt, klicke, so kann ich wiederrum dessen Eigenschaften sehen. Meine Frage, rein aus Neugier: Ich habe beim Debuggen einen Haltepunkt auf die Zeile "Return True" der Function "GetPropertiesSupported" der Klasse "PersonConverter" gesetzt. Wenn ich nun eben wie vorhin beschrieben im PropertyGrid auf die Eigenschaft "P" klicke, so wird diese Function 2mal durchlaufen und anschliessend dann 1mal die "GetProperties"-Function. Kann mir vielleicht jemand erkl�ren, wieso die "GetPropertiesSupported"-Function 2mal durchlaufen wird?
Dank und Gr��e
Oskar
|
