IListSource y ToString () con DataSource
-
05-07-2019 - |
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: /
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é ...)