ExpressionEditor クラス
アセンブリ: System.Design (system.design.dll 内)


Visual Studio 2005 などのビジュアル デザイナ ホストでは、ExpressionEditor クラスを使用してカスタム式エディタ シートをユーザーに表示し、選択された式を評価してデザイン時の描画を行います。
デザイン時のプロパティ グリッドでコントロールの Expressions プロパティを参照すると、ビジュアル デザイナでは、コントロール プロパティの式を設定するためのダイアログ ボックスが表示されます。式の型は、式プレフィックスの一覧に基づいて選択できます。式プレフィックスを一覧から選択すると、ビジュアルなデザイナは、この式の型の構文に基づいて式文字列を設定、評価、および変換するために、関連付けられている ExpressionEditor オブジェクトおよび ExpressionEditorSheet オブジェクトを使用します。ビジュアルなデザイナは、コントロール プロパティに関連付けられた式を設定し、評価された式の結果を使用して、デザイン サーフェイス上に描画されるコントロール プロパティの値を代入します。
静的 GetExpressionEditor メソッドは、特定の式プレフィックスまたは式ビルダに関連付けられている式エディタを取得します。ExpressionEditor オブジェクトの ExpressionPrefix プロパティは、構成された式プレフィックスを返します。EvaluateExpression メソッドは、入力式文字列を評価します。GetExpressionEditorSheet メソッドは、式ダイアログ ボックスでカスタム式プロパティを要求するために使用される ExpressionEditorSheet 実装を返します。
通常、デザイン時に新しい式の型をサポートするには、一意な式プレフィックスを定義し、カスタムの ExpressionBuilder および ExpressionEditor の実装を提供します。オプションで、式ダイアログ ボックスで式を形成するために使用されるプロパティを定義するカスタムの ExpressionEditorSheet 実装を提供できます。
式プレフィックスは、カスタム式の型を識別し、式を式ビルダおよび式エディタに関連付けます。ページでカスタム式が解析されるときに、関連付けられている ExpressionBuilder クラスおよび ExpressionEditor クラスのインスタンスを作成するために式プレフィックスが使用されます。式プレフィックスを式ビルダおよび式エディタに関連付けるには、ExpressionEditorAttribute 属性と ExpressionPrefixAttribute 属性をカスタム ExpressionBuilder クラスに適用し、Web 構成ファイルの expressionBuilders 要素内で式ビルダの式プレフィックスを構成します。プレフィックスは必須ではありませんが、強く推奨されます。
継承時の注意 カスタム ExpressionEditor クラスを派生させる場合は、次の手順を実行する必要があります。-
オプションで、GetExpressionEditorSheet メソッドをオーバーライドして、カスタム式を形成するために組み合わせるプロパティを定義するカスタム クラスを返します。
-
ExpressionBuilder クラス宣言で ExpressionEditorAttribute 属性を適用して、カスタム式ビルダと派生式エディタ クラスとを関連付けます。

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; } } }

System.Web.UI.Design.ExpressionEditor
System.Web.UI.Design.AppSettingsExpressionEditor
System.Web.UI.Design.ConnectionStringsExpressionEditor
System.Web.UI.Design.ResourceExpressionEditor


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ExpressionEditor クラスのページへのリンク