tag propiedad objetos dinamicos c# events event-handling uwp uielement

objetos - propiedad tag c#



¿Debo crear un nuevo método para manejar el evento o anular el método base? (1)

Estoy usando una clase derivada de la clase UIElement cuando escribo un programa UWP usando C #, donde quiero incluir el manejo de controles de entrada como las acciones del mouse y del teclado. Ahora veo que ya hay métodos virtuales que dicen OnSomeEvent() y claramente puedo anular estos métodos para adaptarlos a mi proceso de manejo, o puedo crear un nuevo método manejando los eventos públicos definidos en la clase base, y suscribirlos a estos eventos de entrada en el constructor Supongo que estos dos métodos funcionan, pero espero saber cuál es la forma más profesional o más aconsejable de hacerlo, y por qué. También ayudaría a explicar por qué MS ofrece estas dos formas al mismo tiempo.

Aquí están los eventos y métodos de la clase UIElement https://msdn.microsoft.com/en-us/library/system.windows.uielement(v=vs.110).aspx#Examples

y un párrafo de citas

UIElement proporciona un punto de partida para las características de diseño de elementos y también expone los métodos virtuales que las clases derivadas pueden anular, lo que puede influir en el comportamiento de representación de diseño del elemento y sus elementos secundarios. Gran parte del comportamiento de entrada y enfoque para elementos en general también se define en la clase UIElement. Esto incluye los eventos para la entrada de teclado, mouse y lápiz, y propiedades de estado relacionadas. Muchos de estos eventos son eventos enrutados, y muchos de los eventos relacionados con la entrada tienen tanto una versión de enrutamiento burbujeante como una versión de túnel del evento. Estos eventos emparejados suelen ser los eventos de mayor interés para los autores de control.


En una clase derivada, generalmente anulo el método existente.

¿Por qué? El controlador de eventos es menos confiable que el método de reemplazo. Por ejemplo, las clases externas pueden borrar manejadores de eventos, pero no pueden cambiar el código en la anulación. Sin embargo, debe sellar su propia clase, o su método puede ser anulado.

Otro punto a considerar es este: ¿quiero cambiar la forma en que funciona el control? ¿Debo tener control sobre el momento exacto de ejecución del código (digamos antes del código de la clase base, después o en lugar de)? Si es así, debes usar la anulación.