¿Cómo implemento un mecanismo "Necesito guardar" para un contenedor de datos?

Suponga que existe el BindingList<Person{Name, age}> clase y una PersonManager clase que aloja la lista. En la aplicación, cada control se envía a la lista de personas, para manipularlo o actualizarlo. P.ej. Un cuadro de lista que tiene los nombres de las personas, un control que actualiza la edad de la persona seleccionada, etc.

Ahora quiero implementar un mecanismo de "¿Necesito ahorrar?" Para esto. De alguna manera, la interfaz de usuario debe saber si PersonManager se ha cambiado para poder guardarlo.

Mi pensamiento es atrapar el INotifyPropertyChanged evento que Person implementa y crea un evento en PersonManager que se activa cuando se genera un propertyChangedEvent. Algo así como un mecanismo de reenvío de eventos.

Esto parece ser propenso a errores. ¿Alguna sugerencia sobre cómo mejorarlo?

preguntado el 27 de agosto de 11 a las 19:08

1 Respuestas

Si los elementos de una BindingList implementan INotifyPropertyChanged, el evento ListChanged de BindingList se activará cuando se active uno de los elementos PropertyChanged.

Por lo tanto, solo necesita manejar el evento ListChanged de BindingList en su PersonManager y establecer un indicador booleano sucio (sucio es el significante típico de datos obsoletos o no guardados) en su PersonManager. Luego, la aplicación puede preguntarle al PersonManager si algún dato está sucio. Cuando la aplicación guarda los datos, le dice al PersonManager que reinicie la bandera sucia. Si PersonManager también maneja el guardado de los datos, entonces puede restablecer su propia bandera.

Espero que esto ayude.

respondido 03 nov., 11:18

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.