Como faço para substituir o toString () para um dicionário
-
19-09-2019 - |
Pergunta
eu tenho um Dictionary<string, FieldDefinition>
Propriedade de dependência que, quando eu a vincho a uma caixa de listagem WPF, quero que ela apenas imprima a string (não a FieldDefinition).
Existe uma maneira de fazer isso?
Solução
Eu poderia estar errado aqui, mas acho que você está procurando o Keys
propriedade no dicionário; Isso retornará uma coleção de TKey
Valores (no seu caso, a parte 'string' do seu dicionário, não a parte do campo, que aliás estaria disponível através do Values
Propriedade)
<ListBox ItemsSource="{Binding MyDictionary.Keys}" />
Outras dicas
Eu criaria uma classe que implementa idictio
public class CustomDictionary : IDictionary
{
...
}
ou herda o dicionário
public class CustomDictionary : Dictionary<string, FieldDefinition>
{
...
}
e substituir o ToString
Método nesta aula como esta:
public override string ToString()
{
return "My custom string";
}
Derivar uma classe do dicionário, substituir a tostring ().
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow