Compartir a través de


Árbol de elementos del modelo de programación

En el ejemplo ProgrammingModelItemTree se muestra cómo navegar por el árbol ModelItem mediante el enlace de datos declarativo desde la vista de árbol de Windows Presentation Foundation (WPF).

Detalles del ejemplo

El ModelItem árbol es la abstracción que usa la infraestructura del Diseñador de flujos de trabajo de Windows para exponer los datos sobre la instancia subyacente que se está editando. La siguiente ilustración es una representación de las distintas capas de infraestructura en el Diseñador de flujos de trabajo.

Diagrama que muestra la arquitectura del Diseñador de flujos de trabajo.

ModelItem Consta de un puntero al valor subyacente, así como una colección de ModelProperty objetos . A su vez, un ModelProperty objeto consta de datos como el nombre y el tipo de la propiedad y, a continuación, un puntero al valor, que, a su vez, es otro ModelItem. Un convertidor de valores se usa para manipular algunos de los ModelItemelementos devueltos desde ModelProperty para que aparezcan correctamente en la vista de árbol. A continuación, el ejemplo muestra cómo programar de manera imperativa en el árbol ModelItem utilizando la sintaxis imperativa, tal y como se puede ver en el siguiente ejemplo.

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");

Para utilizar este ejemplo

  1. Abra la solución ProgrammingModelItemTree.sln en Visual Studio.

  2. Compile la solución seleccionando Compilar solución en el menú Compilar .

  3. Presione F5 para ejecutar la aplicación. A continuación, se muestra el formulario WPF.

  4. Haga clic en el botón Cargar WF para cargar ModelItem y enlazarlo a la vista de árbol.

  5. Al hacer clic en el botón Cambiar árbol de elementos de modelo, se ejecuta el código anterior para agregar un elemento al árbol y establecer una propiedad.

Consulte también