Partager via


DialogPropertyValueEditor, classe

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

Hiérarchie d'héritage

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

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

Syntaxe

'Déclaration
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

Le type DialogPropertyValueEditor expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique DialogPropertyValueEditor() Initialise une nouvelle instance de la classe DialogPropertyValueEditor.
Méthode publique DialogPropertyValueEditor(DataTemplate, DataTemplate) Initialise une nouvelle instance de la classe DialogPropertyValueEditor.

Début

Propriétés

  Nom Description
Propriété publique DialogEditorTemplate Obtient ou définit le DataTemplate qui est hébergé par une boîte de dialogue spécifique de l'hôte et dont DataContext est affecté à PropertyValue.
Propriété publique InlineEditorTemplate Obtient ou définit le DataTemplate utilisé pour un éditeur inline. (Hérité de PropertyValueEditor.)

Début

Méthodes

  Nom Description
Méthode publique Equals Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode publique ShowDialog Appelé lorsque DialogEditorTemplate a la valeur nullune référence null (Nothing en Visual Basic) et que l'utilisateur a appelé une boîte de dialogue.
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)

Début

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

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

Microsoft.Windows.Design.PropertyEditing, espace de noms

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Autres ressources

Architecture d'édition de propriété

Extensibilité du Concepteur WPF