Wir benutzen ein PropertyGrid um Benutzereinstellungen einer Anwendung zu speichern und zu verändern.Mit Werten, die reinen Text oder Zahlen darstellen, ist dies auch kein Problem.
Nun möchten wir aber eine Eigenschaft, nennen wir sie mal "Hersteller", mit einem Wert füllen, der die ID des Herstellers darstellt, aber in dem PG soll der Name des Herstellers stehen. Die Liste der Hersteller muss dazu dynamisch aus der DB gelesen werden.
Folgenden Lösungsansatz habe ich bis jetzt schon umgesetzt:
[highlight=vbnet]
Public Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValues Collection
Dim _Values As New Collections.SortedList
If _dtVendors.Rows.Count > 0 Then
For Each _rowVendors In _dtVendors.Rows
_Values.Add(_rowVendors.VendorsGUID, _rowVendors.VendorsName)
Next
End If
Return _Values
End Function
[/highlight]
Doch dann frag ich mich, wie es weiter gehen soll. Wie kann ich nun aus der SortedList (VendorsGUID, VendorsName) nun die benötigte StandardValueCollection erstellen?
Wie müsste ich dann weiter vorgehen, um nicht die VendorsGUID zu "sehen", sondern der Eintrag VendorsName und dass der Wert "Hersteller" sich dann auch ändert, wenn ich einen neuen Hersteller aus der Combobox des PG auswähle.
Nun möchten wir aber eine Eigenschaft, nennen wir sie mal "Hersteller", mit einem Wert füllen, der die ID des Herstellers darstellt, aber in dem PG soll der Name des Herstellers stehen. Die Liste der Hersteller muss dazu dynamisch aus der DB gelesen werden.
Folgenden Lösungsansatz habe ich bis jetzt schon umgesetzt:
[highlight=vbnet]
Public Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValues Collection
Dim _Values As New Collections.SortedList
If _dtVendors.Rows.Count > 0 Then
For Each _rowVendors In _dtVendors.Rows
_Values.Add(_rowVendors.VendorsGUID, _rowVendors.VendorsName)
Next
End If
Return _Values
End Function
[/highlight]
Doch dann frag ich mich, wie es weiter gehen soll. Wie kann ich nun aus der SortedList (VendorsGUID, VendorsName) nun die benötigte StandardValueCollection erstellen?
Wie müsste ich dann weiter vorgehen, um nicht die VendorsGUID zu "sehen", sondern der Eintrag VendorsName und dass der Wert "Hersteller" sich dann auch ändert, wenn ich einen neuen Hersteller aus der Combobox des PG auswähle.
Comment