Compartilhar via


Propriedade de edição de arquitetura

Visualmente editando propriedades de objeto é um recurso importante do Windows Presentation Foundation (WPF) Designer for Visual Studio.Este tópico descreve a arquitetura da propriedade WPF Designer Edição do sistema.

Propriedade entrada

A classe PropertyEntry representa a propriedade próprio.A classe PropertyValue representa o valor subjacente de uma propriedade.

Categoria editores

Um editor de categoria permite que o usuário final para editar várias propriedades em uma categoria ao mesmo tempo.As propriedades que são associadas com um editor de categoria não são mostradas em outro lugar na janela Propriedades.Propriedades que não são editadas por esse editor de categoria será visível e editável.Você pode especificar quais propriedades dentro de uma categoria são editadas por um editor de categoria.

A propriedade Value editores

Um editor de valor de propriedade define como um tipo específico é exibido e editado em janela Propriedades de um designer visual.Propriedade valor editores desempenham uma função na caixa WPF Designer,semelhante da UITypeEditor classe na arquitetura System.ComponentModel.Os WPF Designer editores, no entanto, são independentes do System.ComponentModel e arquitetura Formulários do Windows.

Um PropertyValueEditor possui as partes listadas na tabela a seguir.

Propriedade valor Editor parte

Descrição

Editor in-line (também chamado modo de exibição )

Um editor hospedado no mesmo espaço físico como o modo de exibição na janela Propriedades de hospedagem.Por exemplo, consulte a propriedade Margin.

Editor estendido

Um editor que normalmente não é hospedado no local.Este é o equivalente do editor lista suspensa Estilo na System.ComponentModel Arquitetura.Por exemplo, consulte a propriedade HorizontalAlignment.

Caixa de diálogo

Um editor que é implementado em seu próprio caixa de diálogo.Por exemplo, consulte a propriedade RowDefinitions.

Você pode usar os padrões para as modo de exibição e editor embutido partes.Um PropertyValueEditor não é necessário para fornecer uma parte estendido Editor.

Cada parte é um DataTemplate WPF.Cada parte é independente dos outros e pode ser usado de forma independente.

A janela Propriedades de hospedagem fornece o quadro ao redor de modo de exibição e editores.Isso permite que o host fornecer um estilo consistente em editores e permite que hosts fornecer diferentes estilos diferentes.Por exemplo, Expression Blend e Visual Studio fornecer uma aparência diferente e o comportamento para suas respectivas propriedades janelas.

O WPF associação de dados e um conjunto padrão de RoutedCommand WPF objetos fornecem o mecanismo de comunicação entre o host e as PropertyValueEditor partes.

No caso mais simples, uma parte de valor Editor pode ser um DataTemplate que contém controles padrão WPF.Em casos mais complexos, uma parte tipo pode ser um DataTemplate que faz referência a controle personalizado.

Você pode implementar quatro tipos diferentes de editores valor da propriedade, que são listados na tabela a seguir.

Propriedade Tipo de valor Editor

Descrição

Simples

O editor de valor de propriedade é composto por um editor embutido.

Estendido

O editor de valor de propriedade consiste em um editor estendido e um editor embutido.

Dialog

O editor de valor de propriedade consiste em um editor estendido e um editor embutido.

Classes de infraestrutura

Classes de infraestrutura são necessárias para qualquer implementação editor de valor de propriedade.Essas classes são listados na tabela a seguir e consistem de infraestrutura para hospedar ou criação editores Valor Principal.

Classes de infraestrutura

Descrição

PropertyValue

Representa o valor de uma propriedade.

PropertyValueEditor

O classe base para valor editores.

PropertyValueEditorCommands

RoutedCommand Tipos e implementações de identificadores para os comandos padrão.

DialogPropertyValueEditor

O Abstract classe base para caixa de diálogo valor editores.

  • Define o comando ShowDialog e um manipulador para o comando padrão.

  • Tem um modelo editor embutido e modo de exibição padrão.

  • Marca uma PropertyValueEditor como um Editor caixa de diálogo.

Propriedade Editor valores de implementação

As seções a seguir descrevem aspectos de implementar um editor de valor de propriedade.

Valor StringValue e coleção

O modelo PropertyValue possui três propriedades relacionadas ao valor da propriedade.As propriedades PropertyValue listadas na tabela a seguir.

Propriedade PropertyValue

Descrição

Value

Um objeto representação dos dados.

StringValue

Um representação de sequência de caracteres dos dados, que podem ser usados para exibir ou de serialização.

Collection

Uma coleção representação dos dados.

StringValueUm representação de sequência de caracteres dos dados, que podem ser usados para exibir ou de serialização.Valor e StringValue Cache qualquer conjunto chamadas.

O cache para StringValue é liberado quando valor está definido.O cache para é liberado quando valor está definido.Isso significa que quando ImmediateValue é definida, o cache para valor e StringValue são liberados.

Um cenário comum é para oferecer suporte a atualização da propriedade que está sendo criada (como os tipos de usuário), onde os dados vinculados à entrada de texto é StringValue dinâmica.No entanto, a propriedade base é definida somente quando o texto dinâmico atende a determinados critérios.

Requisitos PropertyValueEditor

Um editor de valor de propriedade corretamente implementado deve satisfazer os requisitos a seguir.

  • O editor de valor de propriedade deve ser projetado de tal forma que a editor embutido e partes estendido Editor podem ser usados independentemente.

  • Um editor de valor de propriedade não devem armazenar estado.Propriedade valor editores são sem-estado, podem ser armazenado em cache por um implementação de host e podem ser reutilizados por vários valores de propriedade.

  • Um editor de valor de propriedade não deve presumir que apenas um valor Editor parte (Exibir/inline/estendido) controle é ativa em um determinado momento.Por exemplo, um caixa de diálogo poderia ter a parte modo de exibição, parte in-line e parte interface do usuário estendida ativa ao mesmo tempo.

  • Um controle, implementado como parte de uma editor de valor de propriedade não deve armazenar estado.Um controle, implementado como parte de um editor valor não deve presumir que ele só será acoplado a um valor da propriedade.Os controles podem ser reciclados para alterar valores de propriedade diferente.Qualquer informação armazenada em cache deve ser liberada se o modelo de dados for atualizado.

  • Um controle, implementado como parte de uma editor de valor de propriedade não deve fazer suposições sobre o host ou seus controles pai.Os mecanismos de comunicação apenas que devem ser usados são a PropertyValue modelo de dados, by Way of o DataContext, e definir o padrão de comandos.

Consulte também

Referência

PropertyEntry

PropertyValue

PropertyValueEditor

Outros recursos

Extensibilidade do WPF Designer