Classe DialogPropertyValueEditor

Contenitore per tutta la logica di modifica tramite finestra di dialogo per gli oggetti PropertyEntry.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.Windows.Design.PropertyEditing
Assembly:  Microsoft.Windows.Design.Interaction (in Microsoft.Windows.Design.Interaction.dll)

Sintassi

'Dichiarazione
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

Il tipo DialogPropertyValueEditor espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico DialogPropertyValueEditor() Inizializza una nuova istanza della classe DialogPropertyValueEditor.
Metodo pubblico DialogPropertyValueEditor(DataTemplate, DataTemplate) Inizializza una nuova istanza della classe DialogPropertyValueEditor.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica DialogEditorTemplate Ottiene o imposta l'oggetto DataTemplate che viene ospitato da una finestra di dialogo specifica dell'host e che dispone dell'oggetto DataContext impostato su un oggetto PropertyValue.
Proprietà pubblica InlineEditorTemplate Ottiene o imposta l'oggetto DataTemplate utilizzato per un editor inline. (Ereditato da PropertyValueEditor)

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico ShowDialog Oggetto chiamato quando l'oggetto DialogEditorTemplate è nullriferimento null (Nothing in Visual Basic) e l'utente ha richiamato una finestra di dialogo.
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Note

Utilizzare la classe DialogPropertyValueEditor per visualizzare un editor in linea che può disporre di un editor della finestra di dialogo associato.

La classe DialogPropertyValueEditor può contenere un oggetto DataTemplate per un editor della finestra di dialogo o una logica personalizzata chiamata quando la finestra di dialogo viene richiamata.

Utilizzare l'oggetto EditModeSwitchButton nell'oggetto DataTemplate per richiamare la classe DialogPropertyValueEditor personalizzata.

È possibile fornire un oggetto DataTemplate visualizzato in una finestra di dialogo host oppure eseguire l'override del metodo ShowDialog che consente di riutilizzare finestre di dialogo esistenti o del sistema.

Nell'elenco seguente vengono mostrate le regole per determinare se viene utilizzato il metodo DataTemplate o ShowDialog.

  • Se la proprietà DialogEditorTemplate non è nullriferimento null (Nothing in Visual Basic), quell'oggetto DataTemplate viene ospitato in una finestra di dialogo specifica dell'host che fornisce l'applicazione di stili all'host. L'oggetto ShowDialog non viene chiamato.

  • Se la proprietà DialogEditorTemplate è nullriferimento null (Nothing in Visual Basic), viene chiamato il metodo ShowDialog virtuale ed è possibile eseguirne l'override per visualizzare tutte le finestre di dialogo.

Esempi

Nell'esempio di codice seguente viene illustrato come creare un editor di valori di proprietà di una finestra di dialogo che consenta di visualizzare una finestra di dialogo Apri file quando nella finestra Proprietà viene selezionata una proprietà FileName personalizzata. Per ulteriori informazioni, vedere Procedura: creare un editor di valori di proprietà di una finestra di dialogo.

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>

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.Windows.Design.PropertyEditing

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Altre risorse

Architettura di modifica delle proprietà

Estensibilità di Progettazione WPF