3 Pluspunkte 0 Minuspunkte

Ich habe eine Klasse mit einer List<KeyValuePairs<string, string>>.

public class CustomObject
{

    public string Name { get; set; }
    public int Price { get; set; }

    public List<KeyValuePair<string, string>> Names { get; set; } = new List<KeyValuePair<string, string>>()
    {

        new KeyValuePair<string, string>("a", "aaa"),
        new KeyValuePair<string, string>("b", "bbb"),
        new KeyValuePair<string, string>("c", "ccc")

    };

}

Wenn ich die Klasse aber im Propertygrid anzeige und ein KeyValuePair bearbeiten will geht das nicht und wird irgendwie wie ein Array dargestellt.

von  

1 Antwort

2 Pluspunkte 0 Minuspunkte

Du kannst eine eigene Klasse für die KeyValuePair-Objekte erstellen, dann werden diese automatisch in einen TypeListConverter konvertiert.

public class CustomKeyValuePair
{
    public string Key { get; set; }
    public string Value { get; set; }
}

Das CustomObject bekommt eine List<CustomKeyValuePair>.

public List<CustomKeyValuePair> Names { get; set; } = new List<CustomKeyValuePair>()
{
    new CustomKeyValuePair() { Key = "a", Value = "aaa" },
    new CustomKeyValuePair() { Key = "b", Value = "bbb" },
    new CustomKeyValuePair() { Key = "c", Value = "ccc" }
};
von (566 Punkte)