Partilhar via


Classe DialogPropertyValueEditor

Recipiente para todos os diálogo caixa de edição de lógica para PropertyEntry objetos.

Hierarquia de herança

System.Object
  Microsoft.Windows.Design.PropertyEditing.PropertyValueEditor
    Microsoft.Windows.Design.PropertyEditing.DialogPropertyValueEditor

Namespace:  Microsoft.Windows.Design.PropertyEditing
Assembly:  Microsoft.Windows.Design.Interaction (em Microsoft.Windows.Design.Interaction.dll)

Sintaxe

'Declaração
Public Class DialogPropertyValueEditor _
    Inherits PropertyValueEditor
public class DialogPropertyValueEditor : PropertyValueEditor
public ref class DialogPropertyValueEditor : public PropertyValueEditor
type DialogPropertyValueEditor =  
    class
        inherit PropertyValueEditor
    end
public class DialogPropertyValueEditor extends PropertyValueEditor

O tipo DialogPropertyValueEditor expõe os membros a seguir.

Construtores

  Nome Descrição
Método público DialogPropertyValueEditor() Initializes a new instance of the DialogPropertyValueEditor class.
Método público DialogPropertyValueEditor(DataTemplate, DataTemplate) Initializes a new instance of the DialogPropertyValueEditor class.

Início

Propriedades

  Nome Descrição
Propriedade pública DialogEditorTemplate Obtém ou define o DataTemplate que é hospedado por uma caixa de diálogo específica do host e tem seu DataContext definido como um PropertyValue.
Propriedade pública InlineEditorTemplate Obtém ou define o DataTemplate que é usado para um editor embutido. (Herdado de PropertyValueEditor.)

Início

Métodos

  Nome Descrição
Método público Equals Determina se o especificado Object é igual a atual Object. (Herdado de Object.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado pela coleta de lixo. (Herdado de Object.)
Método público GetHashCode Serves as a hash function for a particular type. (Herdado de Object.)
Método público GetType Obtém o Type da instância atual. (Herdado de Object.)
Método protegido MemberwiseClone Cria uma cópia superficial do atual Object. (Herdado de Object.)
Método público ShowDialog Chamado quando o DialogEditorTemplate é nulluma referência nula (Nothing no Visual Basic) e uma caixa de diálogo foi chamada pelo usuário.
Método público ToString Retorna um string que representa o objeto atual. (Herdado de Object.)

Início

Comentários

Use o DialogPropertyValueEditor classe para mostrar um editor embutido que pode ter um editor de caixa de diálogo associadas.

O DialogPropertyValueEditor classe pode conter um DataTemplate para um editor de caixa de diálogo ou a lógica personalizada que é chamada quando a caixa de diálogo é invocada.

Use o EditModeSwitchButton no seu DataTemplate para chamar seu personalizado DialogPropertyValueEditor classe.

Você pode fornecer um DataTemplate que é mostrado na caixa de diálogo do host ou você pode substituir o ShowDialog método, que permite a reutilização de existente ou sistema diálogo caixas.

A lista a seguir mostra as regras para determinar se o DataTemplate ou ShowDialog método é usado.

  • Se a DialogEditorTemplate a propriedade não é nulluma referência nula (Nothing no Visual Basic), que DataTemplate está hospedado em uma caixa de diálogo específica do host, que fornece o estilo de host. O ShowDialog não é chamado.

  • Se o DialogEditorTemplate é a propriedade nulluma referência nula (Nothing no Visual Basic), o virtual ShowDialog método é chamado e você pode substituir esse método para mostrar a caixa de diálogo.

Exemplos

O exemplo de código a seguir mostra como criar uma caixa de diálogo editor de propriedade de valor que exibe uma caixa de diálogo Abrir arquivo quando um personalizado nome de arquivo propriedade é clicada na janela Propriedades. For more information, see Como: Criar um editor de valor de propriedade de caixa de diálogo.

using System;
using System.ComponentModel;
using System.Windows;
using Microsoft.Windows.Design.Metadata;
using Microsoft.Windows.Design.PropertyEditing;
using Microsoft.Win32;

namespace CustomControlLibrary.Design
{
    public class FileBrowserDialogPropertyValueEditor : DialogPropertyValueEditor
    {
        private EditorResources res = new EditorResources();

        public FileBrowserDialogPropertyValueEditor()
        {
            this.InlineEditorTemplate = res["FileBrowserInlineEditorTemplate"] as DataTemplate;
        }

        public override void ShowDialog(
            PropertyValue propertyValue,
            IInputElement commandSource)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Multiselect = false;

            if (ofd.ShowDialog() == true)
            {
                propertyValue.StringValue = ofd.FileName;
            }
        }
    }
}
<ResourceDictionary xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:PropertyEditing="clr-namespace:Microsoft.Windows.Design.PropertyEditing;assembly=Microsoft.Windows.Design.Interaction"
                    xmlns:Local="clr-namespace:CustomControlLibrary.Design"
                    x:Class="CustomControlLibrary.Design.EditorResources">

    <DataTemplate x:Key="FileBrowserInlineEditorTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="1*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <TextBox Grid.Column="0" Text="{Binding StringValue}"/>
            <PropertyEditing:EditModeSwitchButton Grid.Column="1"/>
        </Grid>
    </DataTemplate>

</ResourceDictionary>

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.Windows.Design.PropertyEditing

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Outros recursos

Propriedade de edição de arquitetura

Extensibilidade do WPF Designer