2008-08-26 20 views
18

¿Alguien puede sugerir una buena implementación de una clase de colección genérica que implementa las interfaces IBindingListView & IBindingList y proporciona capacidades de filtrado y búsqueda?Implementaciones genéricas IBindingListView

veo mis opciones actuales como:

  • El uso de una clase que otra persona ha escrito y probado
  • Heredar de BindingList<T>, y la aplicación de las IBindingListView interfaces de
  • Escribir una colección personalizada a partir de cero, implementando IBindingListView y IBindingList.

Obviamente, la primera opción es mi elección preferida.

Respuesta

13

he usado y construido sobre una aplicación que encontré en edad y mensajes en el foro de MSDN desde hace unos años, pero recientemente he buscado la vuelta otra vez y encontró un proyecto SourceForge llamado BindingListView. Se ve muy bien, simplemente no lo he traído para reemplazar mi versión pirateada todavía.

+4

+1 Cinco años después y aún parece una gran implementación. No he encontrado nada mejor que admita Ordenamiento y Filtrado fuera de la caja. – harlam357

+0

maldito, simple increíble! –

+0

No es compatible con Agregar o LINQ? –

1

Un par de soluciones que se me ocurre:

  1. El SubSonic Project tiene una bonita aplicación de BindlingList<T> que es de código abierto. Aunque esto podría requerir el uso de todo el binario de SubSonic para usar su implementación.

  2. Me gusta usar las clases del proyecto Power Collections. Es bastante simple heredar de una de las colecciones base allí e implementar IBindingListView.

+0

¿Hay una versión más reciente de Potencia Colecciones? La página de discusión habla de actualizaciones para .net 4.0 en 2011, pero el lanzamiento de la página de descarga es de 2007. –

3

Aquí está la ayuda para el método 2 y 3 Detrás de las escenas: Ejecución de filtrado de datos de Windows Forms Encuadernación

http://www.microsoft.com/downloads/details.aspx?FamilyID=4af0c96d-61d5-4645-8961-b423318541b4&displaylang=en

+0

¡El código aquí no funciona realmente! El valor originalListItems nunca se establece y, por lo tanto, la lista no se restablece correctamente. Siempre que sepa esto, puede agregar el código en usted mismo. – Chris

+0

Aquí hay un contexto más para ese enlace: http://blogs.msdn.com/b/winformsue/archive/2008/05/19/implementing-filtering-on-the-ibindinglistview.aspx – Fantius

+0

@chris: ¿qué haces? significa que el valor originalListItems nunca se establece? ¡Se establece a través de la propiedad OriginalList! ¿O extraño algo? –