Pregunta

Primero tengo un cuadro de lista y configuro el DataSource a MyObjectCollection

MyObjectCollection implementa la interfaz IListSource que contiene MyObject's

MyObject tiene el método

public override string ToString()
{
    return "test";
}

El cuadro de lista ahora muestra " test " para cada elemento en MyObjectCollection.

Pero si aplico la interfaz IListSource a MyObject, también. El cuadro de lista muestra una cadena vacía. Cómo arreglar eso en el " MyObject " clase. Una solución es corregirlo en el evento de Formato de cuadro de lista, pero cada elemento de la GUI debe implementar esta solución: /

¿Fue útil?

Solución

Generalmente, las cosas deberían o ser listas, o deberían ser una entidad para el enlace. Si es una lista ( IList o IListSource ), gran parte de la API de enlace de datos supondrá que realmente desea (para escenarios de enlace simple, es decir, una fila) el < em> primer elemento de la lista secundaria

Simplemente lo cambiaría para que MyObject no implemente IListSource , pero lo encapsula , tal vez exponiéndolo a través de una propiedad Items . También podría ver si un TypeConverter personalizado funcionaría (lo investigaré ...)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top