4 Stimmen

Kann eine WF4 generische Aktivität in XAML deklariert werden?

Ich habe eine Workflow 4-Aktivität, die auf einer beliebigen Anzahl von Klassen ausgeführt werden kann, die von meiner Basisklasse erben. Die Aktivität ist daher natürlich generisch. Ähnlich wie bei den Aktivitäten ForEach oder AddToCollection benötigt meine Aktivität einen Typenparameter.

Meine Frage ist: Kann ich diese Aktivität im Designer mit XAML erstellen? Beachten Sie, dass es sich um eine zusammengesetzte Aktivität handelt, daher scheint der Designer die beste Wahl zu sein.

Wenn ich sie im Code erstellen würde, würde sie folgendermaßen aussehen:

public class MyGenericActivity : Activity where T : MyBaseClass
{
   //Argumente würden hier stehen
   public MyGenericActivity()
   {
      this.Implementation = () => new Sequence
      {
         Activities = { //... }
      };
   }
}

Obwohl diese Lösung funktionieren würde, wäre die Wartung mit Sicherheit mühsam und Sie würden keine der "Annehmlichkeiten" des Designers auf diese Weise erhalten.

1voto

Tim Lovell-Smith Punkte 14066

Der XAML-Stack könnte dies möglicherweise unterstützen (nicht sicher), aber im VS 10 lässt der Workflow-Designer Sie definitiv nicht dies tun.

0voto

Maurice Punkte 27462

Nicht sicher, ob du das kannst, aber ich vermute nicht. Aber selbst wenn du könntest, warum würdest du das tun? Eine xaml-Aktivität ist nur Markup und Komposition, es gibt keinen Code, also wie würdest du den generischen Typ verwenden.

Das Design-Time-Erlebnis für jemanden, der deine Aktivität verwendet, hat nichts mit der Erstellung deiner Aktivität zu tun. Füge einfach einen Designer hinzu und gib dem Benutzer das gewünschte Design-Erlebnis. Du kannst sie mehrere Unteraktivitäten hinzufügen lassen, indem du den WorkflowItemsPresenter verwendest.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X