Árvore modelo de programação de item
O exemplo ProgrammingModelItemTree demonstra como navegar na árvore ModelItem usando a associação de dados declarativa do Modo de Exibição de Árvore do Windows Presentation Foundation (WPF).
Detalhes de exemplo
A árvore de ModelItem é a abstração que é usada pela infraestrutura do Designer de Fluxo de Trabalho do Windows para expor os dados sobre a instância subjacente que está sendo editada. A ilustração a seguir é uma descrição das várias camadas de infraestrutura dentro do Designer de Fluxo de Trabalho.
ModelItem consiste em um ponteiro para o valor subjacente, bem como uma coleção de objetos ModelProperty . Um objeto de ModelProperty por sua vez, consiste dados como nome e tipo da propriedade e então um ponteiro para o valor que, por sua vez, é outro ModelItem. Um conversor de valor é usado para manipular qualquer um de ModelItems retornado de ModelProperty para fazê-lo aparecer corretamente no modo de exibição de árvore. O exemplo demonstra como programar em imperativa contra a árvore de ModelItem usando a sintaxe imperativa, como visto no exemplo a seguir.
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 usar este exemplo
Abra a solução de ProgrammingModelItemTree.sln no Visual Studio.
Crie a solução selecionando Compilar solução do menu Compilar.
Pressione F5 para executar o aplicativo. O formulário do WPF é exibido em seguida.
Clique no botão de Carregar WF para carregar o ModelItem e para associá-lo ao modo de exibição de árvore.
Clicando no botão de Modificar a árvore de itens do modelo executa o código anterior para adicionar um item na árvore e para definir uma propriedade.