Condividi tramite


Classe DialogPropertyValueEditor

Aggiornamento: novembre 2007

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

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

Sintassi

Public Class DialogPropertyValueEditor _
    Inherits PropertyValueEditor

Dim instance As DialogPropertyValueEditor
public class DialogPropertyValueEditor : PropertyValueEditor
public ref class DialogPropertyValueEditor : public PropertyValueEditor
public class DialogPropertyValueEditor extends PropertyValueEditor

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"
                    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>

Gerarchia di ereditarietà

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

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

Membri DialogPropertyValueEditor

Spazio dei nomi Microsoft.Windows.Design.PropertyEditing

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Altre risorse

Architettura di modifica delle proprietà

Estensibilità di Progettazione WPF