Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
Contenedor de toda la lógica de edición de cuadro de diálogo para objetos PropertyEntry.
Espacio de nombres: Microsoft.Windows.Design.PropertyEditing
Ensamblado: Microsoft.Windows.Design (en Microsoft.Windows.Design.dll)
Sintaxis
Public Class DialogPropertyValueEditor _
Inherits PropertyValueEditor
Dim instance As DialogPropertyValueEditor
public class DialogPropertyValueEditor : PropertyValueEditor
public ref class DialogPropertyValueEditor : public PropertyValueEditor
public class DialogPropertyValueEditor extends PropertyValueEditor
Comentarios
Utilice la clase DialogPropertyValueEditor para mostrar un editor insertado que puede tener un editor con cuadro de diálogo asociado.
La clase DialogPropertyValueEditor puede contener DataTemplate para un editor de cuadros de diálogo o puede contener la lógica personalizada a la que se llama cuando se invoca el cuadro de diálogo.
El objeto EditModeSwitchButton de DataTemplate se utiliza para invocar la clase DialogPropertyValueEditor personalizada.
Puede proporcionar un objeto DataTemplate, que se muestra en un cuadro de diálogo de host, o puede invalidar el método ShowDialog, que habilita la reutilización de cuadros de diálogo existentes o cuadros de diálogo del sistema.
En la lista siguiente se muestran las reglas que determinan si se utiliza el método DataTemplate o ShowDialog.
Si la propiedad DialogEditorTemplate no es nullreferencia null (Nothing en Visual Basic), DataTemplate se hospeda en un cuadro de diálogo específico del host, que proporciona estilos de host. No se llama al método ShowDialog.
Si la propiedad DialogEditorTemplate es nullreferencia null (Nothing en Visual Basic), se llama al método ShowDialog virtual y es posible invalidar este método para mostrar cualquier cuadro de diálogo.
Ejemplos
En el ejemplo de código siguiente se muestra cómo crear un editor de valores de propiedad con cuadro de diálogo que muestra un cuadro de diálogo de apertura de archivo cuando se hace clic en una propiedad FileName personalizada en la ventana Propiedades. Para obtener más información, vea Cómo: Crear un editor de valores de propiedad con cuadro de diálogo.
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>
Jerarquía de herencia
System.Object
Microsoft.Windows.Design.PropertyEditing.PropertyValueEditor
Microsoft.Windows.Design.PropertyEditing.DialogPropertyValueEditor
Seguridad para subprocesos
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también
Referencia
DialogPropertyValueEditor (Miembros)
Microsoft.Windows.Design.PropertyEditing (Espacio de nombres)