Как переопределить ToString () для словаря

2

У меня есть свойство зависимости Dictionary<string, FieldDefinition>, когда я привязываю его к списку списка WPF, я хочу, чтобы он просто печатал строку (не FieldDefinition).

Есть ли способ сделать это?

Теги:
wpf
dictionary
tostring

3 ответа

3
Лучший ответ

Возможно, я ошибаюсь, но я думаю, что вы ищете свойство Keys в словаре; это вернет коллекцию значений TKey (в вашем случае, "строка" части вашего словаря, а не часть FieldDefinition, которая, кстати, будет доступна через свойство Values)

<ListBox ItemsSource="{Binding MyDictionary.Keys}" />
6

Я бы создал класс, который либо реализует IDictionary

public class CustomDictionary : IDictionary
{
...
}

или наследует словарь

public class CustomDictionary : Dictionary<string, FieldDefinition>
{
...
}

и переопределить метод ToString в этом классе следующим образом:

public override string ToString() 
  {
     return "My custom string";
  }
  • 1
    Это действительно правильный способ переопределить ToString, но не совсем то, что запрашивает OP. IanR находится на правильном пути.
  • 0
    ну, это было то, что было названием вопроса, но не фактической вещью, которую ОП пытался выполнить ...
2

Вывести класс из словаря, переопределить ToString().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню