Punto apropiado para adjuntar evento NodeChanged, XAML

Tengo un control de usuario WPF en un formulario de solicitud de winforms.

Básicamente, quiero un controlador de eventos genérico conectado a mi WPF TreeView para manejar "Document.NodeChanged". Como este evento en particular se dispara cuando se llena el árbol, intenté hacer un archivo adjunto tardío, a través del evento Cargado de mi control de vista de árbol.

El código es algo así como:

private void UpdateGrid()
{
    myGridView.UpdateXML(entityId, runDate, rtbToggleFullView.ToggleState == Telerik.WinControls.Enumerations.ToggleState.Off, userName);
    //Safely attach the event to fire when the treeview has finished loading.
    myGridView.tvRatings.Loaded -= AttachNodeChangedEvent;
    myGridView.tvRatings.Loaded += AttachNodeChangedEvent;
}

Entonces el método "AttachNodeChangedEvent" se ve así:

public void AttachNodeChangedEvent(object i, EventArgs a)
{
    ((XmlDataProvider)myGridView.dataProvider).Document.NodeChanged -= OnNodeChanged;
    ((XmlDataProvider)myGridView.dataProvider).Document.NodeChanged += OnNodeChanged;
}

Con un método simple OnNodeChanged:

public void OnNodeChanged(object i, EventArgs a)
{
  Dirty = true;
}

La idea es: -

UpdateGrid ejecuta UpdatesXML en treeviewAgrega un "atacante NodeChangeHandler" a treeview.Loaded (cuando se carga treeview) treeview dispara "NodeChangeHandler Attacher" que luego adjunta "OnNodeChanged" al XmlDocumentProvider poblado de Treeview.

Esto parecía funcionar perfectamente en Windows 7. Sin embargo, en Windows XP, la rutina AttachNodeChangedEvent se dispara y experimenta una excepción NullReferenceException (presumiblemente porque el documento aún no se ha cargado) bloqueando la aplicación.

Comentar las líneas ... ((XmlDataProvider) myGridView ... corrige el bloqueo, pero obviamente deshabilita la funcionalidad.

¿Alguien puede sugerir una mejor manera de lograr lo mismo, o arrojar algo de luz sobre por qué esto funciona para Windows 7, pero no para Windows XP? "por ejemplo, Adjuntar NodeChangedEvent después de la población inicial de Treeview"

Puedo confirmar que ambos usan el paquete .Net Framework 4 apropiado y parecen tener todas las demás dependencias incluidas adecuadamente.

¡Gracias

Respuestas a la pregunta(0)

Su respuesta a la pregunta