INotifyPropertyChanged en WinForm generado por el diseñador para detectar controles modificados

Estoy tratando de implementar una forma de detectar cuando el usuario ha modificado un formulario y estoy tratando de usar la interfaz INotifyPropertyChanged (INPC) para hacerlo. Pero estoy usando Visual C # Express Designer para administrar todos los elementos del formulario.

He visto muchos ejemplos de cómo usar el INPC creando su propia clase con sus propios campos de miembros y controles en Internet, pero hasta la fecha nunca he visto un ejemplo de INPC en el que incorporen esta interfaz en el .designer. cs (generados) que permitirían detectar cuándo se han modificado esos controles generados por el diseñador.

¿Hay un ejemplo de esto, o cómo se vería esto en la práctica? ¿Hay ejemplos en línea de esto?

:-( He estado luchando con este problema por un tiempo. Si alguien pudiera ayudarme, sería maravilloso.

PD: No puedo usar el evento Control.Textchanged porque Binding.Format () y Binding.Parse () envían falsos positivos cuando el usuario cambia las pestañas en el TabControl en el que se encuentran los controles durante SelectedIndexChanged.

preguntado el 10 de mayo de 11 a las 13:05

1 Respuestas

Podría estar equivocado, pero creo que debe pasar por IComponentChangeService para informar al diseñador sobre los cambios. En su Control personalizado, cuando se produce un cambio, puede utilizar el siguiente código para obtener el servicio de cambio:

IComponentChangeService changeService = this.GetService(typeof(IComponentChangeService)) as IComponentChangeService;

Entonces puedes llamar OnComponentChanged en él, transmitiendo la información necesaria. Y creo que si quieres que deshacer funcione correctamente, también debes llamar OnComponentChanging antes de que ocurra el cambio.

contestado el 10 de mayo de 11 a las 18:05

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