DialogPropertyValueEditor, classe

Mise à jour : novembre 2007

Conteneur de toute la logique d'édition de boîte de dialogue pour les objets PropertyEntry.

Espace de noms :  Microsoft.Windows.Design.PropertyEditing
Assembly :  Microsoft.Windows.Design (dans Microsoft.Windows.Design.dll)

Syntaxe

Public Class DialogPropertyValueEditor _
    Inherits PropertyValueEditor

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

Notes

Utilisez la classe DialogPropertyValueEditor pour afficher un éditeur inline qui peut être associé à un éditeur de boîtes de dialogue.

La classe DialogPropertyValueEditor peut contenir DataTemplate pour un éditeur de boîtes de dialogue ou la logique personnalisée appelée lorsque la boîte de dialogue est appelée.

Utilisez EditModeSwitchButton dans votre DataTemplate pour appeler la classe personnalisée DialogPropertyValueEditor.

Vous pouvez fournir un DataTemplate qui s'affiche dans une boîte de dialogue hôte ou substituer la méthode ShowDialog afin de pouvoir réutiliser des boîtes de dialogue existantes ou système.

La liste suivante affiche les règles permettant de déterminer si la méthode DataTemplate ou ShowDialog est utilisée.

  • Si la propriété DialogEditorTemplate n'a pas la valeur nullune référence null (Nothing en Visual Basic), ce DataTemplate est hébergé dans une boîte de dialogue spécifique de l'hôte, qui fournit la définition de style pour l'hôte. ShowDialog n'est pas appelé.

  • Si la propriété DialogEditorTemplate a la valeur nullune référence null (Nothing en Visual Basic), la méthode virtuelle ShowDialog est appelée et vous pouvez substituer cette méthode pour afficher une boîte de dialogue.

Exemples

L'exemple de code suivant indique comment créer un éditeur de valeurs de propriété de boîte de dialogue qui affiche une boîte de dialogue Ouvrir un fichier lorsque l'utilisateur clique sur une propriété FileName personnalisée dans la fenêtre Propriétés. Pour plus d'informations, consultez Comment : créer un éditeur de valeurs de propriété de boîte de dialogue.

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>

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres DialogPropertyValueEditor

Microsoft.Windows.Design.PropertyEditing, espace de noms

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Autres ressources

Architecture d'édition de propriété

Extensibilité du concepteur WPF