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


DialogPropertyValueEditor - класс

Обновлен: Ноябрь 2007

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

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

Синтаксис

'Декларация
Public Class DialogPropertyValueEditor _
    Inherits PropertyValueEditor
'Применение
Dim instance As DialogPropertyValueEditor
public class DialogPropertyValueEditor : PropertyValueEditor
public ref class DialogPropertyValueEditor : public PropertyValueEditor
public class DialogPropertyValueEditor extends PropertyValueEditor

Заметки

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

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

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

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

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

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

  • Если свойство DialogEditorTemplate имеет значение nullссылка 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"
                    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>

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

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

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

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

См. также

Ссылки

DialogPropertyValueEditor - члены

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

EditModeSwitchButton

PropertyEntry

PropertyValue

PropertyValueEditorCommands

IInputElement

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

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

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