plus - El enlace de la red C#no se actualiza
moto c actualizacion 2018 (3)
Estoy usando el objeto BindingSource entre mi Colección y mi Cuadrícula. Por lo general, no tengo que llamar nada.
Tengo una grilla que está vinculada a una colección. Por alguna razón que no sé, ahora cuando realizo alguna acción en la grilla, la grilla no se actualiza.
Situación: cuando hago clic en un botón de la cuadrícula, aumenta un valor que está en la misma línea. Cuando hago clic, puedo depurar y ver el incremento del valor, pero el valor no cambia en la cuadrícula. PERO cuando hago clic en el botón, minimizo y restauro las ventanas, el valor se actualiza ... ¿Qué tengo que hacer para que el valor se actualice como antes?
ACTUALIZAR Esto NO SE RESUELVE, pero acepté la mejor respuesta aquí.
No está resuelto porque funciona como siempre, cuando los datos provienen de la base de datos, pero no de la memoria caché. Los objetos se serializan y arrojaron el proceso del evento se pierden. Es por eso que los reconstruyo y funciona para lo que sé porque puedo interactuar con ellos PERO parece que no funciona para la actualización de la grilla por un motivo desconocido.
Para que el enlace sea bidireccional, desde el control hasta el origen de datos y desde el origen de datos para controlar el origen de datos debe implementar los eventos de notificación de cambio de propiedad, en una de las 2 formas posibles:
Implemente la interfaz INotifyPropertyChanged y plantee el evento cuando cambien las propiedades:
public string Name { get { return this._Name; } set { if (value != this._Name) { this._Name= value; NotifyPropertyChanged("Name"); } } }
Implementar un evento cambiado para cada propiedad que debe notificar a los controles cuando cambia. El nombre del evento debe tener el formato PropertyName Changed:
public event EventHandler NameChanged; public string Name { get { return this._Name; } set { if (value != this._Name) { this._Name= value; if (NameChanged != null) NameChanged(this, EventArgs.Empty); } } }
* como una nota, los valores de su propiedad son los correctos después de la ventana maximizar, porque el control vuelve a leer los valores de la fuente de datos.
Parece que necesita llamar a DataBind en su código de actualización.