Как переопределить ToString () для словаря - PullRequest
2 голосов
/ 08 января 2010

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

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

Ответы [ 3 ]

6 голосов
/ 08 января 2010

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

public class CustomDictionary : IDictionary
{
...
}

, либо наследует Dictionary

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

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

public override string ToString() 
  {
     return "My custom string";
  }
3 голосов
/ 08 января 2010

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

<ListBox ItemsSource="{Binding MyDictionary.Keys}" />
2 голосов
/ 08 января 2010

Извлечение класса из словаря, переопределение ToString ().

...