2010-08-30 34 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