Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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