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: /

Foi útil?

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 ...)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top