Freigeben über


DialogPropertyValueEditor-Klasse

Container für die gesamte Dialogfeld-Bearbeitungslogik für PropertyEntry-Objekte.

Vererbungshierarchie

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

Namespace:  Microsoft.Windows.Design.PropertyEditing
Assembly:  Microsoft.Windows.Design.Interaction (in Microsoft.Windows.Design.Interaction.dll)

Syntax

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

Der DialogPropertyValueEditor-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode DialogPropertyValueEditor() Initialisiert eine neue Instanz der DialogPropertyValueEditor-Klasse.
Öffentliche Methode DialogPropertyValueEditor(DataTemplate, DataTemplate) Initialisiert eine neue Instanz der DialogPropertyValueEditor-Klasse.

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft DialogEditorTemplate Ruft die DataTemplate ab, die von einem hostspezifischen Dialogfeld gehostet wird und für die der DataContext auf einen PropertyValue festgelegt ist, oder legt diese fest.
Öffentliche Eigenschaft InlineEditorTemplate Ruft die für einen Inline-Editor verwendete DataTemplate ab oder legt diese fest. (Von PropertyValueEditor geerbt.)

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Equals Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode ShowDialog Wird aufgerufen, wenn DialogEditorTemplatenullNULL-Verweis (Nothing in Visual Basic) ist, und vom Benutzer ein Dialogfeld aufgerufen wurde.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)

Zum Seitenanfang

Hinweise

Verwenden Sie die DialogPropertyValueEditor-Klasse, um einen Inline-Editor anzuzeigen, der einen zugeordneten Dialogfeld-Editor aufweisen kann.

Die DialogPropertyValueEditor-Klasse kann entweder eine DataTemplate für einen Dialogfeld-Editor oder eine benutzerdefinierte Logik enthalten, die beim Aufrufen des Dialogfelds aufgerufen wird.

Verwenden Sie in der DataTemplate die EditModeSwitchButton, um die benutzerdefinierte DialogPropertyValueEditor-Klasse aufzurufen.

Sie können eine DataTemplate bereitstellen, die in einem Hostdialogfeld angezeigt wird, oder Sie können die ShowDialog-Methode überschreiben, wodurch Sie vorhandene Dialogfelder oder Systemdialogfelder wiederverwenden können.

Die folgende Liste zeigt die Regeln an, mit denen bestimmt wird, ob die DataTemplate- oder die ShowDialog-Methode verwendet wird.

  • Wenn die DialogEditorTemplate-Eigenschaft nicht nullNULL-Verweis (Nothing in Visual Basic) ist, wird diese DataTemplate in einem hostspezifischen Dialogfeld gehostet, das die Hostformatierung bereitstellt. Der ShowDialog wird nicht aufgerufen.

  • Wenn die DialogEditorTemplate-Eigenschaft nullNULL-Verweis (Nothing in Visual Basic) ist, wird die virtuelle ShowDialog-Methode aufgerufen, und Sie können diese Methode überschreiben, um ein beliebiges Dialogfeld anzuzeigen.

Beispiele

Das folgende Codebeispiel zeigt, wie Sie einen Eigenschaftswert-Editor für Dialogfelder erstellen, der ein Dialogfeld zum Öffnen einer Datei anzeigt, wenn im Fenster Eigenschaften auf eine benutzerdefinierte FileName-Eigenschaft geklickt wurde. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Eigenschaftswert-Editors für Dialogfelder.

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>

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.Windows.Design.PropertyEditing-Namespace

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Weitere Ressourcen

Eigenschaftenbearbeitungsarchitektur

WPF-Designer-Erweiterbarkeit