Saját események WF activity-ben

Aki sokat kódolt már Workflow Foundation platformon vagy járt nálunk tanfolyamon, biztosan megjegyezte, hogy WF DependencyProperty készítéséhez használható a "wdp" nevű snippet. Hasonlóan, ha a "wde" snippetet használjuk, gyorsan beszúrhatunk egy eseményt definiáló kódot a saját activity osztályunkba.

Alapértelmezés szerint a beszúrt kód EventHandler típusú eseményt definiál. Mi van akkor, ha mi további adatokat szeretnénk átadni esemény paraméterként? Természetesen létre kell hoznunk egy saját esemény paraméter osztályt. A bökkenő csak annyi, hogy a snippet nem kínál fel ezzel kapcsolatban semmilyen módosítási lehetőséget, pedig csak annyi a trükk, hogy gondolkodni kell, no meg generikus EventHandlert használni, például:

public static DependencyProperty OnWorkingEvent = DependencyProperty.Register( "OnWorking", typeof( EventHandler<WorkEventArgs> ), typeof( MyActivity ) );

// Sok attribútum jön ide
public event EventHandler<WorkEventArgs> OnWorking
{ … }

Ha ezt utólag próbáljuk átvezetni az activity kódján, a workflow designer várhatóan panaszkodni fog, hogy a korábban feldobott activity paraméterezése érvénytelen. Ha nem akarjuk elölről kezdeni a teljes workflow tervezését, akkor kívételes alkalom lévén ne féljünk beleszerkeszteni a workflow.designer.cs fájlba. Valahogy így:

this.myActivity1.OnWorking += new System.EventHandler<WorkEventArgs>( this.myActivity1_OnWorking );

Addig kell ügyeskedni, amíg a workflow designer abbahagyja a nyavalygást és hajlandó megjeleníteni a workflow definíciót grafikusan. Sok sikert🙂

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s