IListSource e ToString () com fonte de dados
-
05-07-2019 - |
Pergunta
Primeiro eu tenho uma caixa de listagem e definir a fonte de dados a um MyObjectCollection
implementos MyObjectCollection a interface IListSource wich contém de MyObject
MyObject tem o método
public override string ToString()
{
return "test";
}
A caixa de listagem exibe agora "teste" para cada elemento na MyObjectCollection.
Mas se eu aplicar a interface IListSource para MyObject também. A caixa de listagem mostra uma cadeia vazia. Como corrigir isso na classe "MyObject". A solução é para corrigi-lo no evento Format caixa de listagem, mas que cada elemento GUI tem de implementar esta solução alternativa: /
Solução
Geralmente, as coisas devem qualquer ser listas, ou deve ser uma entidade para a ligação. Se for uma lista (IList
ou IListSource
), então a maior parte da API de ligação de dados irá assumir que você realmente quer (para cenários de ligação simples, ou seja, uma linha) do início item da sub-lista.
Eu simplesmente mudá-lo para que MyObject
não implementar IListSource
, mas encapsula , talvez expondo-lo através de uma propriedade Items
. Você também pode olhar para saber se um TypeConverter
costume iria trabalhar (eu vou investigar ...)