Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der ModelItem Bearbeitungskontext ist das Objekt, das von der Hostanwendung für die Kommunikation mit dem Designer verwendet wird. EditingContext stellt zwei Methoden, Items und Services, bereit, die verwendet werden können.
Items-Auflistung
Die Items Sammlung wird verwendet, um auf Daten zuzugreifen, die zwischen dem Host und dem Designer gemeinsam genutzt werden, oder auf Daten, die für alle Designer verfügbar sind. Diese Sammlung verfügt über die folgenden Funktionen, auf die über die ContextItemManager Klasse zugegriffen wird:
Services-Auflistung
Die Services Sammlung wird verwendet, um auf Dienste zuzugreifen, die der Designer für die Interaktion mit dem Host oder diensten verwendet, die alle Designer verwenden. Diese Auflistung verfügt über die folgenden relevanten Methoden:
Zuweisen eines Designers zu einer Aktivität
Um anzugeben, welchen Designer eine Aktivität verwendet, wird das Designer-Attribut verwendet.
[Designer(typeof(MyClassDesigner))]
public sealed class MyClass : CodeActivity
{
}
Erstellen eines Diensts
Um einen Dienst zu erstellen, der als Verbindung von Informationen zwischen dem Designer und dem Host dient, muss eine Schnittstelle und eine Implementierung erstellt werden. Die Schnittstelle wird von der Publish Methode verwendet, um die Elemente des Dienstes zu definieren. Die Implementierung enthält die Logik für den Dienst. Im folgenden Codebeispiel werden eine Dienstschnittstelle und -implementierung erstellt.
public interface IMyService
{
IEnumerable<string> GetValues(string DisplayName);
}
public class MyServiceImpl : IMyService
{
public IEnumerable<string> GetValues(string DisplayName)
{
return new string[] {
DisplayName + " One",
DisplayName + " Two",
"Three " + DisplayName
} ;
}
}
Veröffentlichen eines Diensts
Damit ein Designer einen Dienst nutzt, muss er zuerst mithilfe der Publish Methode vom Host veröffentlicht werden.
this.Context.Services.Publish<IMyService>(new MyServiceImpl);
Abonnieren eines Diensts
Der Designer erhält zugriff auf den Dienst mithilfe der Subscribe Methode in der OnModelItemChanged Methode. Der folgende Codeausschnitt veranschaulicht, wie Sie einen Dienst abonnieren.
protected override void OnModelItemChanged(object newItem)
{
if (!subscribed)
{
this.Context.Services.Subscribe<IMyService>(
servInstance =>
{
listBox1.ItemsSource = servInstance.GetValues(this.ModelItem.Properties["DisplayName"].ComputedValue.ToString());
}
);
subscribed = true;
}
}
Freigeben von Daten mithilfe der Items-Auflistung
Die Verwendung der Items-Auflistung ähnelt der Verwendung der Services-Auflistung, mit der Ausnahme, dass SetValue anstelle von Publish verwendet wird. Diese Auflistung eignet sich eher für die Freigabe einfacher Daten zwischen den Designern und dem Host anstatt für die Freigabe komplexer Funktionen.
EditingContext-Hostelemente und -Dienste
.NET Framework bietet eine Reihe integrierter Elemente und Dienste, auf die über den Bearbeitungskontext zugegriffen wird.
Elemente:
AssemblyContextControlItem: Verwaltet die Liste der referenzierten lokalen Assemblys, die im Workflow für Steuerelemente verwendet werden (z. B. den Ausdrucks-Editor).
ReadOnlyState: Gibt an, ob der Designer einen schreibgeschützten Zustand aufweist.
Selection: Definiert die Auflistung von Objekten, die derzeit ausgewählt sind.
WorkflowFileItem: Stellt Informationen zu der Datei bereit, auf der die aktuelle Bearbeitungssitzung basiert.
Dienste:
AttachedPropertiesService: Ermöglicht das Hinzufügen von Eigenschaften zur aktuellen Instanz mithilfe von AddProperty.
DesignerView: Ermöglicht den Zugriff auf die Eigenschaften der Designer-Leinwand.
IActivityToolboxService: Ermöglicht die Aktualisierung des Inhalts der Toolbox.
ICommandService: Wird verwendet, um Designerbefehle (z. B. Kontextmenü) in benutzerdefinierte Dienstimplementierungen zu integrieren.
IDesignerDebugView: Stellt Funktionen für den Designerdebugger bereit.
IExpressionEditorService: Bietet Zugriff auf das Dialogfeld "Ausdrucks-Editor".
IIntegratedHelpService: Stellt dem Designer integrierte Hilfefunktionen bereit.
IValidationErrorService: Bietet Zugriff auf Überprüfungsfehler mithilfe von ShowValidationErrors.
IWorkflowDesignerStorageService: Stellt einen internen Dienst zum Speichern und Abrufen von Daten bereit. Dieser Dienst wird intern vom .NET Framework verwendet und ist nicht für die externe Verwendung vorgesehen.
IXamlLoadErrorService: Bietet Zugriff auf die XAML-Ladefehlerauflistung mithilfe von ShowXamlLoadErrors.
ModelService: Wird vom Designer verwendet, um mit dem Modell des bearbeiteten Workflows zu interagieren.
ModelTreeManager: Bietet mithilfe von Root Zugriff auf den Stamm der Modellelementstruktur.
UndoEngine: Stellt Funktionen zum Rückgängigmachen und Wiederholen bereit.
ViewService: Ordnet visuelle Elemente zugrunde liegenden Modellelementen zu.
ViewStateService: Speichert Ansichtszustände für Modellelemente.
VirtualizedContainerService: Wird verwendet, um das Verhalten der benutzeroberfläche des virtuellen Containers anzupassen.
WindowHelperService: Dient zum Registrieren und Aufheben der Registrierung von Delegaten für Ereignisbenachrichtigungen. Ermöglicht außerdem das Festlegen eines Fensterbesitzers.