Schnittstelle IWorkArea

Die Schnittstelle IWorkArea ist die gemeinsame Basis aller Schnittstellen, die zur Implementierung von Fenstern verwendet werden.

Zweck

Die Schnittstelle IWorkArea ist die gemeinsame Basis aller Schnittstellen, die zur Implementierung von Fenstern verwendet werden. Die Eigenschaften und Methoden der Schnittstelle dienen dem Senden von Nachrichten des Frameworks an das Fenster und dem Lesen von Fensterdaten durch das Framework.

IMessageHandable.MessageHandler

IWorkArea ist von der Schnittstelle IMessageHandable abgeleitet. Diese Schnittstelle vererbt einen Handler für Fensternachrichten:

void MessageHandler(WindowMessage)

MessageHandler ist eine Methode, die analog IApplicationComponent.RequestHandler Nachrichten vom Framework an das Plug-in verarbeitet. Einen Überblick der wichtigsten Ereignisse und der Nachrichten, die bei deren Auftreten an die Fenster verschickt werden, gibt die folgende Tabelle.

Nachrichtentyp Ereignis siehe
Activated Das Fenster wurde aktiviert. Elementfenster (Sample 2)
Deactivated Das Fenster wurde deaktiviert.  
Closing Das Fenster wird geschlossen. Elementfenster (Sample 2)
SelectionChanged Die Selektion wurde geändert. Selektion
Refresh Modellelemente wurden modifiziert. Fensteraktualisierung
SwitchRole Die Rolle oder die Administratoranmeldung hat sich geändert.  
Unlocking Modellelemente werden entsperrt. Elementfenster (Sample 2)

IWorkArea.Selection und IWorkArea.SelectionPropagation

ElementSet Selection { get; set; }
SelectionType SelectionPropagation { get; }

Diese beiden Eigenschaften regeln das Verhalten des Fensters im Bezug auf die Selektion. Näheres hierzu findet sich in den folgenden Abschnitten.

IWorkArea.CanExeCmd und IWorkArea.ExecuteCmd

bool CanExeCmd(object, CanExecuteRoutedEventArgs)
bool ExecuteCmd(object, ExecutedRoutedEventArgs)

Diese beiden Methoden gleichen in ihrer Funktion denen der Schnittstelle ICommandDispatchable.

Achtung

Ein Fenster kann nur dann Befehle verarbeiten, wenn es aktiv ist, d.h. den Eingabefokus hat. Die Dispatcher-Methoden aller inaktiven Fenster werden bei Ausführung eines Befehls nicht aufgerufen.