Come mantenere la vista xml e la vista designer in sincronizzazione?

1

Il mio compito è creare un designer per un'applicazione di Visual Studio Shell per modificare un formato di file specifico basato su XML.
Uno dei requisiti è che il designer deve supportare una vista divisa, con una vista che mostra un editor grafico e l'altra vista che mostra un testo XML grezzo.
(Dovrebbe essere simile al designer WPF di Visual Studio, ma sfortunatamente il designer WPF non è documentato molto bene ...)

Posso immaginare un oggetto XmlStore che funzioni per il caso quando l'utente apporta una modifica al designer e viene applicato alla vista XML. Nei campioni VSSDK l'esempio WPFDesigner_XML fa esattamente questo.
Un problema qui è che quando l'utente digita un po 'di XML, la vista del designer non ottiene quella singola modifica, ma ricarica di nuovo l'intero file XML e poi si reinizializza completamente.

L'implementazione corrente serializza le sue classi di dati tutte in una volta dopo che è stata rilevata una modifica, creando un nuovo albero XML che sostituisce quello precedente. Pertanto, facendo, annullando o ripristinando tale modifica, ricaricherà nuovamente l'editor .

Ciò di cui ho bisogno è un'architettura, che permetta all'utente di apportare una modifica in entrambe le viste, senza che l'altra vista venga reimpostata, pur supportando anche un annullamento / ripristino pulito.

(Anche se è possibile modificare direttamente l'albero nell'oggetto XmlStore, significherebbe che dovrei cambiare un lotto di codice, quindi se c'è una possibilità di evitarlo, vorrei prendilo.)

Esiste un design consigliato per la sincronizzazione delle viste?

    
posta Betadestruction 13.11.2015 - 14:06
fonte

0 risposte

Leggi altre domande sui tag