バージョン

プロパティ リストのフィルタリング (xamPropertyGrid)

トピックの概要

目的

このトピックでは、コントロールのプロパティ リストのフィルタリングを構成する方法を説明します。

前提条件

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

トピック 目的

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

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

フィルタリングの概要

フィルタリングの概要

xamPropertyGrid コントロールにより、コントロール上端のフィルター領域にあるテキスト ボックスにフィルター値を入力できます。このフィルターは、表示されたプロパティ リストに追加するプロパティを評価する際に、「contains」フィルターとして使用されます。パイプ記号 (「|」) は、「Or」演算子を使用して組み合わされる複数のフィルター条件を指定するために使用できます。

コントロールの FilterText プロパティは、既定でフィルター領域のテキストボックスにバインドされています。そのため、常にエンド ユーザーが入力する現在の値を反映します。また、「And」演算子の使用によってユーザーが指定したフィルター条件と組み合わされる、コントロールの ItemFilters プロパティにより、プログラムでコントロールのカスタム フィルター (ICondition インターフェイスに基づく) を追加できます。

カスタム フィルターを作成する場合は、ICondition インターフェイスを実装する独自のクラスの使用、または提供されているクラスの 1 つ xamPropertyGrid アセンブリ - PropertyGridComparisonConditionPropertyGridComplementCondition および PropertyGridConditionGroup の使用が可能です。これらはそれぞれ、タイプ PropertyGridFilterOperandSourceOperandSource プロパティを公開します。このプロパティにより、特定の項目に対する要件の評価に使用する PropertyGridPropertyItem の値を指定することができます。

コード例の概要

コード例の概要表

以下の表は、このトピックで使用したコード例をまとめたものです。

説明

以下の例では、「Brush」または「Color」が名前に含まれるプロパティを表示するフィルターを追加する方法を示します。

以下の例では、カテゴリ「Appearance」からのプロパティを表示するフィルターを追加する方法を示します。名前には「Visibility」が含まれます。

コード例:プロパティ名によるプロパティのフィルター処理

説明

以下の例では、「Brush」または「Color」が名前に含まれるプロパティを表示するフィルターを追加する方法を示します。

コード

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

XAML の場合:

<ig:XamPropertyGrid>
  <ig:XamPropertyGrid.ItemFilters>
    <ig:PropertyGridConditionGroup LogicalOperator="Or">
      <ig:PropertyGridComparisonCondition Operator="Contains" Value="Brush" />
      <ig:PropertyGridComparisonCondition Operator="Contains" Value="Color" />
    </ig:PropertyGridConditionGroup>
  </ig:XamPropertyGrid.ItemFilters>
</ig:XamPropertyGrid>

注:

Note

既定値が PropertyName であるため、OperandSource プロパティは省略されます。

注:

Note

上記に示すように、項目フィルターを作成すると、ユーザーがフィルターのテキストボックスに 「Brush | Color」 と入力した場合と同じ結果になります。

コード例:プロパティ名およびカテゴリによるプロパティのフィルター処理

説明

以下の例では、カテゴリ「Appearance」からのプロパティを表示するフィルターを追加する方法を示します。名前には「Visibility」が含まれます。

コード

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

XAML の場合:

<ig:XamPropertyGrid>
  <ig:XamPropertyGrid.ItemFilters>
    <ig:PropertyGridConditionGroup LogicalOperator="And">
      <ig:PropertyGridComparisonCondition OperandSource="CategoryName"
        Operator="Equals" Value="Appearance" />
      <ig:PropertyGridComparisonCondition OperandSource="PropertyName"
        Operator="Contains" Value="Visibility" />
    </ig:PropertyGridConditionGroup>
  </ig:XamPropertyGrid.ItemFilters>
</ig:XamPropertyGrid>

注:

Note

エンド ユーザーは、フィルターのテキストボックスを使用して、前述の項目フィルターを作成できません。これには 2 つの理由があります。

  • フィルター条件は、「And」演算子を使用して組み合わせます (フィルターのテキストボックスは、複数の条件を組み合わせる際に「Or」演算子を使用します)。

  • フィルター条件は、「CategoryName」に基づくフィルタリングです (フィルターのテキストボックスは、「PropertyName」に基づいてフィルタリングを行います)。

関連コンテンツ

トピック

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

トピック 目的

このトピックでは、一般的なコントロール オプションを構成する方法を説明します。

このトピックでは、プロパティの値の編集に使用されるエディターのカスタマイズする方法を説明します。

このトピックでは、プロパティ リストのカスタム並べ替えのロジックを設定する方法を紹介します。

このトピックは、エディター定義で編集テンプレートを割り当てるためのカスタム ロジックを作成する方法を紹介します。