次の方法で共有


ExpressionEditor クラス

定義

デザイン時にコントロール プロパティに関連付けられた式を評価したり、式エディター ダイアログ ボックスで使用する式エディター シートをビジュアル デザイン ホストに提供したりするための一連のプロパティとメソッドを定義します。 このクラスは抽象クラスです。

public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
継承
ExpressionEditor
派生

次のコード例は、クラスから ExpressionEditor 派生してカスタム式エディターを定義する方法を示しています。

using System;
using System.Collections;
using System.Collections.Specialized;
using System.CodeDom;
using System.Configuration;
using System.Web.UI.Design;
using System.Web.Compilation;

namespace ExpressionEditorSamples.CS
{
    [ExpressionPrefix("CustomAppSettings")]
    [ExpressionEditor(typeof(ExpressionEditorSamples.CS.CustomAppSettingsEditor))]
    public class CustomAppSettingsBuilder : AppSettingsExpressionBuilder
    {
        // Use the built-in AppSettingsExpressionBuilder class,
        // but associate it with a custom expression editor class.
    }

    public class CustomAppSettingsEditor : System.Web.UI.Design.ExpressionEditor
    {
        public override object EvaluateExpression(string expression, object parseTimeData, Type propertyType, IServiceProvider serviceProvider)
        {
            KeyValueConfigurationCollection customSettings = null;

            if (serviceProvider != null)
            {
                IWebApplication webApp = (IWebApplication)serviceProvider.GetService(typeof(IWebApplication));
                if (webApp != null)
                {
                    Configuration config = webApp.OpenWebConfiguration(true);
                    if (config != null)
                    {
                        AppSettingsSection settingsSection = config.AppSettings;
                        if (settingsSection != null)
                        {
                            customSettings = settingsSection.Settings;
                        }
                    }
                }
            }

            if (customSettings != null)
            {
                return customSettings[expression];
            }

            return expression;
        }
    }
}

注釈

Visual Studio 2005 などのビジュアル デザイナー ホストは、このクラスをExpressionEditor使用してカスタム式エディター シートをユーザーに提示し、選択した式をデザイン時レンダリング用に評価します。

デザイン時プロパティ グリッドでコントロールの Expressions プロパティを参照すると、ビジュアル デザイナーにダイアログ ボックスが表示され、コントロール プロパティの式が設定されます。 式のプレフィックスの一覧に基づいて式の種類を選択できます。 一覧から式プレフィックスを選択すると、ビジュアル デザイナーは関連付けられた ExpressionEditor オブジェクトを ExpressionEditorSheet 使用して、その種類の式の構文に基づいて式文字列を設定、評価、変換します。 ビジュアル デザイナーは、関連付けられたコントロール プロパティの式を設定し、評価された式の結果を使用して、デザイン サーフェイスにレンダリングされるコントロール プロパティ値を割り当てます。

静的 GetExpressionEditor メソッドは、特定の式プレフィックスまたは式ビルダーに関連付けられている式エディターを取得します。 オブジェクトのプロパティは ExpressionPrefixExpressionEditor 構成された式プレフィックスを返します。 このメソッドは EvaluateExpression 、入力式の文字列を評価します。 このメソッドは GetExpressionEditorSheet 、式ダイアログ ボックスで ExpressionEditorSheet カスタム式プロパティの入力を求めるために使用される実装を返します。

通常、デザイン時に新しい式の型をサポートするには、一意の式プレフィックスを定義し、カスタム ExpressionBuilderExpressionEditor 実装を提供します。 必要に応じて、式ダイアログ ボックスで式を形成するために使用されるプロパティを定義するカスタム ExpressionEditorSheet 実装を提供できます。

式プレフィックスは、カスタム式の型を識別し、式を式ビルダーおよび式エディターに関連付けます。 カスタム式がページで解析されると、式プレフィックスを使用して、関連付けられているExpressionBuilderExpressionEditorクラスのインスタンスが作成されます。 式プレフィックスを式ビルダーおよび式エディターに関連付けるには、カスタム ExpressionBuilder クラスにExpressionEditorAttribute属性とExpressionPrefixAttribute属性を適用し、Web 構成ファイルの要素でexpressionBuilders式ビルダーの式プレフィックスを構成します。 プレフィックスは必須ではありませんが、強くお勧めします。

注意 (実装者)

カスタム ExpressionEditor クラスを派生させる場合は、次の手順が必要です。

たとえば、クラスは ResourceExpressionEditor クラスから ExpressionEditor 派生し、デザイン時にリソース文字列参照を評価してコントロール プロパティに関連付けするための実装を提供します。 クラスは ResourceExpressionBuilder 、式のプレフィックス Resources と実装に ResourceExpressionEditor 関連付けられています。 このメソッドは GetExpressionEditorSheet(String, IServiceProvider) 、リソース参照式を ResourceExpressionEditorSheet形成する個々のプロパティを定義する 、 を返します。

コンストラクター

ExpressionEditor()

ExpressionEditor クラスの新しいインスタンスを初期化します。

プロパティ

ExpressionPrefix

式エディター実装でサポートされる式文字列を識別する式プレフィックスを取得します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
EvaluateExpression(String, Object, Type, IServiceProvider)

式文字列を評価し、コントロール プロパティのデザイン時の値を提供します。

GetExpressionEditor(String, IServiceProvider)

指定した式プレフィックスに関連付けられている ExpressionEditor 実装を返します。

GetExpressionEditor(Type, IServiceProvider)

指定した式ビルダーの型に関連付けられている ExpressionEditor 実装を返します。

GetExpressionEditorSheet(String, IServiceProvider)

現在の式エディターに関連付けられている式エディター シートを返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象

こちらもご覧ください