Compartir a través de


DialogPropertyValueEditor (Clase)

Contenedor de toda la lógica de edición de cuadro de diálogo para objetos PropertyEntry.

Jerarquía de herencia

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

Espacio de nombres:  Microsoft.Windows.Design.PropertyEditing
Ensamblado:  Microsoft.Windows.Design.Interaction (en Microsoft.Windows.Design.Interaction.dll)

Sintaxis

'Declaración
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

El tipo DialogPropertyValueEditor expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público DialogPropertyValueEditor() Inicializa una nueva instancia de la clase DialogPropertyValueEditor.
Método público DialogPropertyValueEditor(DataTemplate, DataTemplate) Inicializa una nueva instancia de la clase DialogPropertyValueEditor.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública DialogEditorTemplate Obtiene o establece el objeto DataTemplate que se hospeda en un cuadro de diálogo específico del host y tiene su conjunto de DataContext establecido en PropertyValue.
Propiedad pública InlineEditorTemplate Obtiene o establece el DataTemplate que se utiliza para un editor insertado. (Se hereda de PropertyValueEditor).

Arriba

Métodos

  Nombre Descripción
Método público Equals Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público ShowDialog Se llama a este método cuando el valor de DialogEditorTemplate es nullreferencia null (Nothing en Visual Basic) y el usuario ha invocado un cuadro de diálogo.
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Comentarios

Utilice la clase DialogPropertyValueEditor para mostrar un editor alineado que puede tener un editor con cuadro de diálogo asociado.

La clase DialogPropertyValueEditor puede contener DataTemplate para un editor de cuadros de diálogo o puede contener la lógica personalizada a la que se llama cuando se invoca el cuadro de diálogo.

El objeto EditModeSwitchButton de DataTemplate se utiliza para invocar la clase DialogPropertyValueEditor personalizada.

Puede proporcionar un objeto DataTemplate, que se muestra en un cuadro de diálogo de host, o puede invalidar el método ShowDialog, que habilita la reutilización de cuadros de diálogo existentes o cuadros de diálogo del sistema.

En la lista siguiente se muestran las reglas que determinan si se utiliza el método DataTemplate o ShowDialog.

  • Si la propiedad DialogEditorTemplate no es nullreferencia null (Nothing en Visual Basic), DataTemplate se hospeda en un cuadro de diálogo específico del host, que proporciona estilos de host. No se llama al método ShowDialog.

  • Si la propiedad DialogEditorTemplate es nullreferencia null (Nothing en Visual Basic), se llama al método ShowDialog virtual y es posible invalidar este método para mostrar cualquier cuadro de diálogo.

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear un editor de valores de propiedad con cuadro de diálogo que muestra un cuadro de diálogo de apertura de archivo cuando se hace clic en una propiedad FileName personalizada en la ventana Propiedades. Para obtener más información, vea Cómo: Crear un editor de valores de propiedad con cuadro 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>

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.Windows.Design.PropertyEditing (Espacio de nombres)

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Otros recursos

Arquitectura de edición de propiedades

Extensibilidad de WPF Designer