Programmazione dell'albero degli elementi del modello

L'esempio ProgrammingModelItemTree illustra come esplorare l'albero ModelItem usando il data binding dichiarativo dalla visualizzazione struttura ad albero di Windows Presentation Foundation (WPF).

Dettagli dell'esempio

L'albero ModelItem è l'astrazione usata dall'infrastruttura di Progettazione flussi di lavoro di Windows per esporre i dati sull'istanza sottostante in fase di modifica. L'illustrazione seguente descrive i vari livelli dell'infrastruttura all'interno di Progettazione flussi di lavoro.

Diagram that shows the Workflow Designer architecture.

Un oggetto ModelItem è costituito da un puntatore al valore sottostante e da una raccolta di oggetti ModelProperty. Un oggetto ModelProperty è costituito, a sua volta, da dati quali il nome e il tipo della proprietà e quindi da un puntatore al valore che, a sua volta, è un altro ModelItem. Un convertitore di valori viene usato per modificare alcuni oggetti ModelItemrestituiti da ModelProperty in modo che siano riportati correttamente nella visualizzazione albero. Nell'esempio viene dimostrato quindi come programmare in modo imperativo rispetto all'albero ModelItem usando la sintassi imperativa, come nell'esempio seguente.

ModelItem mi = wd.Context.Services.GetService<ModelService>().Root;
ModelProperty mp = mi.Properties["Activities"];
mp.Collection.Add(new Persist());
ModelItem justAdded = mp.Collection.Last();
justAdded.Properties["DisplayName"].SetValue("new name");

Per usare questo esempio

  1. In Visual Studio aprire la soluzione ProgrammingModelItemTree.sln.

  2. Compilare la soluzione scegliendo Compila soluzione dal menu Compila.

  3. Premere F5 per eseguire l'applicazione. Viene quindi visualizzato il form WPF.

  4. Fare clic sul pulsante Carica WF per caricare ModelItem e associarlo alla visualizzazione struttura ad albero.

  5. Facendo clic sul pulsante Modifica albero degli elementi del modello, viene eseguito il codice precedente per aggiungere un elemento nell'albero e impostare una proprietà.

Vedi anche