ExpressionEditor Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Meghatározza a vezérlőtulajdonságokhoz tartozó kifejezések tervezési időben történő kiértékeléséhez szükséges tulajdonságokat és metódusokat, valamint egy kifejezésszerkesztő lapot ad meg a vizualizációtervező gazdagépnek a kifejezésszerkesztő párbeszédpanelen való használatra. Ez az osztály absztrakt.
public ref class ExpressionEditor abstract
public abstract class ExpressionEditor
type ExpressionEditor = class
Public MustInherit Class ExpressionEditor
- Öröklődés
-
ExpressionEditor
- Származtatott
Példák
Az alábbi példakód bemutatja, hogyan lehet az ExpressionEditor osztályból származni egy egyéni kifejezésszerkesztő definiálásához.
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;
}
}
}
Megjegyzések
Egy vizualizációtervező gazdagép, például a Visual Studio 2005, a ExpressionEditor osztály használatával egyéni kifejezésszerkesztő lapokat jelenít meg a felhasználónak, majd kiértékeli a kijelölt kifejezést a tervezési idő szerinti rendereléshez.
Amikor egy Expressions vezérlőelem tulajdonságát böngészi a tervezési idő tulajdonságrácsában, a vizualizációtervező megjelenít egy párbeszédpanelt, amely egy vezérlőelem-tulajdonság kifejezéseit állítja be. A kifejezéstípust a kifejezéselőtagok listája alapján választhatja ki. Amikor kiválaszt egy kifejezéselőtagot a listából, a vizualizációtervező a társított ExpressionEditor és ExpressionEditorSheet objektumokkal állítja be, értékeli és konvertálja a kifejezési sztringet az adott kifejezéstípus szintaxisa alapján. A vizualizációtervező beállítja a társított vezérlőtulajdonság kifejezését, majd a kiértékelt kifejezés eredményével rendeli hozzá a tervezési felületen megjelenített vezérlőtulajdonság-értékeket.
A statikus GetExpressionEditor metódusok lekérik az adott kifejezéselőtaghoz vagy kifejezésszerkesztőhöz társított kifejezésszerkesztőt. Az ExpressionPrefix objektum tulajdonsága ExpressionEditor a konfigurált kifejezéselőtagot adja vissza. A EvaluateExpression metódus kiértékel egy bemeneti kifejezési sztringet. A GetExpressionEditorSheet metódus visszaadja azt a ExpressionEditorSheet implementációt, amely a kifejezések párbeszédpanel egyéni kifejezéstulajdonságainak megadására szolgál.
Az új kifejezéstípusok tervezéskor történő támogatásához általában egyedi kifejezéselőtagot kell megadnia, és egyéni ExpressionBuilder és ExpressionEditor implementációkat kell megadnia. Igény szerint megadhat egy egyéni ExpressionEditorSheet implementációt, amely meghatározza a kifejezések párbeszédpanelen a kifejezés létrehozásához használt tulajdonságokat.
A kifejezéselőtag azonosítja az egyéni kifejezéstípust, és társít egy kifejezést a kifejezésszerkesztőhöz és a kifejezésszerkesztőhöz. Ha az egyéni kifejezések egy lapon vannak elemezve, a kifejezéselőtag a társított ExpressionBuilder és ExpressionEditor osztályok példányainak létrehozására szolgál. Ha kifejezéselőtagot szeretne társítani egy kifejezésszerkesztővel és kifejezésszerkesztővel, alkalmazza az egyéni osztályra az ExpressionEditorAttribute attribútumokat és ExpressionPrefixAttribute az attribútumokat, és konfigurálja a kifejezésszerkesztő kifejezéselőtagját a ExpressionBuilder webes konfigurációs fájl elemében.expressionBuilders Az előtag nem kötelező, de erősen ajánlott.
Megjegyzések az implementálókhoz
Az egyéni ExpressionEditor osztály származtatásához a következő lépések szükségesek:
Bírálja felül a metódust EvaluateExpression(String, Object, Type, IServiceProvider) az egyéni kifejezéstípus tervezéskor történő kiértékeléséhez.
Igény szerint felülbírálhatja a GetExpressionEditorSheet(String, IServiceProvider) metódust egy egyéni osztály visszaadásához, amely meghatározza az egyéni kifejezés létrehozásához egyesített tulajdonságokat.
Alkalmazza az ExpressionEditorAttribute attribútumot az ExpressionBuilder osztálydeklarációra az egyéni kifejezésszerkesztő és a származtatott kifejezésszerkesztő osztály társításához.
Az osztály például az ResourceExpressionEditorExpressionEditor osztályból származik, és implementációt biztosít egy erőforrás-sztringhivatkozás kiértékeléséhez és társítéséhez egy vezérlőtulajdonsághoz a tervezéskor. Az ResourceExpressionBuilder osztály a kifejezés előtagjával Resources és a megvalósítással ResourceExpressionEditor van társítva. A GetExpressionEditorSheet(String, IServiceProvider) metódus egy ResourceExpressionEditorSheet, amely meghatározza az erőforrás-referenciakifejezést alkotó egyedi tulajdonságokat.
Konstruktorok
| Név | Description |
|---|---|
| ExpressionEditor() |
Inicializálja a ExpressionEditor osztály új példányát. |
Tulajdonságok
| Név | Description |
|---|---|
| ExpressionPrefix |
Lekéri a kifejezésszerkesztő implementációja által támogatott kifejezéssztringeket azonosító kifejezéselőtagot. |
Metódusok
| Név | Description |
|---|---|
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| EvaluateExpression(String, Object, Type, IServiceProvider) |
Kiértékel egy kifejezési sztringet, és megadja egy vezérlőtulajdonság tervezési idejének értékét. |
| GetExpressionEditor(String, IServiceProvider) |
ExpressionEditor A megadott kifejezéselőtaghoz társított implementációt ad vissza. |
| GetExpressionEditor(Type, IServiceProvider) |
ExpressionEditor A megadott kifejezésszerkesztő típushoz társított implementációt ad vissza. |
| GetExpressionEditorSheet(String, IServiceProvider) |
Egy kifejezésszerkesztő lapot ad vissza, amely az aktuális kifejezésszerkesztőhöz van társítva. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |