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 | ホスト固有のダイアログ ボックスによってホストされ、その DataContext が PropertyValue に設定されている DataTemplate を取得または設定します。 | |
InlineEditorTemplate | インライン エディターに使用される DataTemplate を取得または設定します。 (PropertyValueEditor から継承されます。) |
このページのトップへ
メソッド
名前 | 説明 | |
---|---|---|
Equals | 指定した Object が、現在の Object と等しいかどうかを判断します。 (Object から継承されます。) | |
Finalize | オブジェクトがガベージ コレクションにより収集される前に、そのオブジェクトがリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
GetHashCode | 特定の型のハッシュ関数として機能します。 (Object から継承されます。) | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) | |
ShowDialog | DialogEditorTemplate が nullnull 参照 (Visual Basic では Nothing) で、ダイアログ ボックスがユーザーによって起動されているときに呼び出されます。 | |
ToString | 現在のオブジェクトを表す文字列を返します。 (Object から継承されます。) |
このページのトップへ
解説
DialogPropertyValueEditor クラスを使用して、インライン エディターを表示します。これに 1 つのダイアログ ボックス エディターを関連付けることができます。
DialogPropertyValueEditor クラスは、ダイアログ ボックス エディター用の DataTemplate、またはダイアログ ボックスが起動されたときに呼び出されるカスタム ロジックを保持できます。
カスタム DialogPropertyValueEditor クラスを呼び出すには、DataTemplate 内で EditModeSwitchButton を使用します。
ホスト ダイアログ ボックスに表示される DataTemplate を提供するか、または既存のダイアログ ボックスかシステム ダイアログ ボックスを再利用できるようにする ShowDialog メソッドをオーバーライドできます。
DataTemplate と ShowDialog メソッドのどちらが使用されているかを判断するための規則を次に示します。
DialogEditorTemplate プロパティが nullnull 参照 (Visual Basic では Nothing) ではない場合、その DataTemplate は、ホストのスタイルを提供するホスト固有のダイアログ ボックスでホストされています。 ShowDialog は呼び出されません。
DialogEditorTemplate プロパティが nullnull 参照 (Visual Basic では Nothing) の場合、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 (Visual Basic では Shared) メンバーは、スレッド セーフです。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
参照
参照
Microsoft.Windows.Design.PropertyEditing 名前空間