Поделиться через


DialogPropertyValueEditor - класс

Контейнер для логики редактирования всех диалоговых окон для объектов PropertyEntry.

Иерархия наследования

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

Пространство имен:  Microsoft.Windows.Design.PropertyEditing
Сборка:  Microsoft.Windows.Design.Interaction (в Microsoft.Windows.Design.Interaction.dll)

Синтаксис

'Декларация
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

Тип DialogPropertyValueEditor предоставляет следующие члены.

Конструкторы

  Имя Описание
Открытый метод DialogPropertyValueEditor() Инициализирует новый экземпляр класса DialogPropertyValueEditor.
Открытый метод DialogPropertyValueEditor(DataTemplate, DataTemplate) Инициализирует новый экземпляр класса DialogPropertyValueEditor.

В начало страницы

Свойства

  Имя Описание
Открытое свойство DialogEditorTemplate Получает или задает объект DataTemplate, который размещается в определяемом основным приложением диалоговом окне, и свойству DataContext которого присвоено значение PropertyValue.
Открытое свойство InlineEditorTemplate Получает или задает объект DataTemplate, который используется для встроенного редактора. (Унаследовано от PropertyValueEditor.)

В начало страницы

Методы

  Имя Описание
Открытый метод Equals Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследовано от Object.)
Защищенный метод Finalize Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.)
Открытый метод GetHashCode Играет роль хэш-функции для определенного типа. (Унаследовано от Object.)
Открытый метод GetType Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.)
Защищенный метод MemberwiseClone Создает неполную копию текущего объекта Object. (Унаследовано от Object.)
Открытый метод ShowDialog Вызывается при вызове диалогового окна пользователем, если свойство DialogEditorTemplate имеет значение nullпустая ссылка (Nothing в Visual Basic).
Открытый метод ToString Возвращение строки, представляющей текущий объект. (Унаследовано от Object.)

В начало страницы

Заметки

Чтобы отобразить встроенный редактор, с которым связан редактор диалоговых окон, используйте класс DialogPropertyValueEditor.

Класс DialogPropertyValueEditor может содержать объект DataTemplate для редактора диалоговых окон или пользовательскую логику, вызываемую при вызове диалогового окна.

Объект EditModeSwitchButton объекта DataTemplate используется для вызова пользовательского класса DialogPropertyValueEditor.

Можно предоставить объект DataTemplate, который отображается в диалоговом окне хост-приложения, или переопределить метод ShowDialog, который позволяет повторно использовать существующие или системные диалоговые окна.

В следующем списке представлены правила, по которым определяется использование объекта DataTemplate или метода ShowDialog.

  • Если свойство DialogEditorTemplate имеет отличное от nullпустая ссылка (Nothing в Visual Basic) значение, объект DataTemplate размещается в определяемом хост-приложением диалоговом окне, что обеспечивает оформление хост-приложения. Метод ShowDialog не вызывается.

  • Если свойство DialogEditorTemplate имеет значение nullпустая ссылка (Nothing в Visual Basic), вызывается виртуальный метод ShowDialog, который можно переопределить для отображения любого диалогового окна.

Примеры

В следующем примере показано, как создать редактор значений свойств диалогового окна, в котором отображается диалоговое окно открытия файла при выборе настраиваемого свойства FileName в окне "Свойства". Дополнительные сведения см. в разделе Практическое руководство. Создание редактора значений свойств диалогового окна.

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>

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

Microsoft.Windows.Design.PropertyEditing - пространство имен

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

Другие ресурсы

Архитектура редактирования свойства

Расширяемость среды конструктора WPF