バージョン

プロパティ項目ジェネレーター (xamPropertyGrid)

トピックの概要

目的

このトピックでは、コントロールが選択されたオブジェクトのプロパティを検出する方法、プロパティ項目のリストを作成する方法、およびプロセスを構成しカスタマイズする方法を説明します。

前提条件

このトピックを理解するために、以下のトピックを参照することをお勧めします。

トピック 目的

このトピックでは、このコントロールでサポートする機能を開発者の観点から説明します。

このトピックでは、コントロールの視覚要素についての概要を紹介します。

プロパティ生成の概要

プロパティ生成の要約

xamPropertyGrid コントロールには、特定のオブジェクトについてのプロパティを検出するための拡張可能なアーキテクチャがあります。このアーキテクチャは、プロパティ ジェネレーターの概念に基づいています。このコントロールに提供されるビルトイン プロパティ ジェネレーターは、次のとおりです。

  • TypeDescriptorPropertyGeneratorTypeDescriptor を使用して、特定のオブジェクトによって公開されたプロパティを検出します。Attached プロパティおよび CustomTypeDescriptor 実装によって提供されるカスタム プロパティは、検出可能で、プロパティ項目の生成されたリストに含まれるため、TypeDescriptor によるアプローチでは、特定のオブジェクトについての複数のプロパティを検出します。

  • ReflectionPropertyGenerator は、 Reflection を使用して、特定のオブジェクトのプロパティを検出します。ただし、検出できるのは、特定のオブジェクトの型について明示的に定義されたプロパティのみです。

注:

Note

必要なプロパティ ジェネレーターは、コントロールの PropertyGenerator プロパティを設定することで指定します。このプロパティが設定されていない場合、既定では TypeDescriptor プロパティ ジェネレータ-が使用されます。

プロパティ生成の構成

プロパティ ジェネレーターは、添付プロパティおよび読み取り専用プロパティを含めることができる PropertyGenerationOptions プロパティを使用して構成できます。

プロパティ ジェネレーターで検出するプロパティは、以下のコード例に示す GeneratedPropertyFilter プロパティを使用して、フィルターによってカスタマイズすることもできます。

カスタム プロパティ ジェネレーター

既定のジェネレータ-の出力を「微調整」するカスタムなプロパティ生成が必要な場合は、ビルトイン プロパティ ジェネレーターの 1 つからユーザー独自のクラスを派生させ、 GenerateProperties メソッドをオーバーライドして、ビルトイン ジェネレーターから戻されるプロパティ リストを変更することができます。

カスタムなプロパティ検出ロジックを実装するために、プロパティ ジェネレーターのプロセスを完全に引き継ぐ必要がある場合は、 PropertyGeneratorBase クラスから拡張する独自のプロパティ ジェネレーターを作成し、GenerateProperties メソッドをオーバーライドすることができます。

プロパティ ジェネレーター フィルターの構成

概要

以下のコード例は、リフレクション プロパティ ジェネレーターを設定し、名前に「ブラシ」と「色」を含むプロパティのみを表示するようにフィルターを設定する方法を示します。

以下のコードはこの例を実装します。

XAML の場合:

<ig:XamPropertyGrid … >
  …
  <ig:XamPropertyGrid.PropertyGenerator>
    <ig:ReflectionPropertyGenerator>
      <ig:ReflectionPropertyGenerator.GeneratedPropertyFilter>
        <ig:PropertyGridConditionGroup LogicalOperator="Or">
          <ig:PropertyGridComparisonCondition Operator="Contains" Value="Brush" />
          <ig:PropertyGridComparisonCondition Operator="Contains" Value="Color" />
        </ig:PropertyGridConditionGroup>
      </ig:ReflectionPropertyGenerator.GeneratedPropertyFilter>
    </ig:ReflectionPropertyGenerator>
  </ig:XamPropertyGrid.PropertyGenerator>
  …
</ig:XamPropertyGrid>

プロパティ ジェネレーター オプションの構成

概要

以下のコード例は、型記述子プロパティ ジェネレーターを設定する方法と、添付プロパティではなく読み取り専用プロパティを含めるようにするために、オプションを構成する方法を示します。

以下のコードはこの例を実装します。

XAML の場合:

<ig:XamPropertyGrid … >
  …
  <ig:XamPropertyGrid.PropertyGenerator>
    <ig:TypeDescriptorPropertyGenerator />
  </ig:XamPropertyGrid.PropertyGenerator>
  <ig:XamPropertyGrid.PropertyGenerationOptions>
    <ig:PropertyGenerationOptions
      IncludeAttachedProperties="False"
      IncludeReadOnlyProperties="True" />
  </ig:XamPropertyGrid.PropertyGenerationOptions>
  …
</ig:XamPropertyGrid>

関連コンテンツ

トピック

このトピックの追加情報については、以下のトピックも合わせてご参照ください。

トピック 目的

このトピックでは、コントロールが展開可能なプロパティを識別し表示する方法を説明します。

このトピックでは、プロパティの既定値を定義する方法と、オプション メニューをカスタマイズする方法を説明します。

このトピックでは、コマンドによりコントロールを使用してさまざまな操作を実行する方法を説明します。