2010-08-30 36 views
0

我有有一個看起來像這樣(他們設置爲適當的依賴特性,我只是不停地簡單這裏)性質的活動:工作流3.5活動屬性是狀態空,無處

public List<MyType> TypeList { get; set; } 
public Int32 Index { get; set; } 
public MyType SelectedType { get; set; } 

和執行,僅僅做到這一點:

SelectedType = TypeList[Index]; 

類型串和索引是我從其他活動中設置的值。我不會將SelectedType設置爲活動屬性中的任何內容,我只是讓它在執行中被設置。

現在我知道一個事實,即SelectedType正確設置,我甚至可以指向另一個活動並從中打印出一些值。所以我非常肯定這項活動沒有任何問題。

不過,我有一個看起來像這樣的條件的,如果活動:

((MyActivity)GetActivityByName("activity1")).SelectedType != null 

,並計算爲假(這意味着它評估SelectedType爲空)。我很確定這個活動的轉換是正確的(我一直在做這樣的事情),如果它不是我試圖訪問SelectedType時不會得到一個空引用異常?所以我很肯定我在這裏沒有做任何錯誤,但由於某種原因,SelectedType在這種情況下會變爲null,而在其他地方沒有。

這幾乎就像是在活動運行之前正在評估條件,但活動比工作流中的條件早得多,所以我不明白爲什麼會是這種情況。

任何人都可以對此有所瞭解嗎?

回答

0

顯然它與while循環有關,導致活動被克隆。我通過將activity屬性綁定到工作流屬性來修復它。有關更多信息,請參閱我在工作流論壇上提供的this post