0

我有一个活动,它的属性看起来像这样(它们被设置为正确的依赖属性,我只是在这里保持简单):

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

以及执行此操作的执行:

SelectedType = TypeList[Index];

TypeList 和 Index 是我从其他活动中设置的值。我没有将 SelectedType 设置为活动属性中的任何内容,我只是让它在执行中设置。

现在我知道 SelectedType 设置正确的事实,我什至可以将另一个活动指向它并从中打印出一些值。所以我非常肯定这项活动没有任何问题。

但是,我有一个条件如下的 if 活动:

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

并且它评估为 false(意味着它评估 SelectedType 为空)。我很确定该活动强制转换是正确的(我一直在做这样的事情),如果不是这样,我在尝试访问 SelectedType 时不会得到空引用异常吗?所以我很确定我在这里没有做错任何事情,但由于某种原因,SelectedType 在这种情况下会出现空值,而在其他任何地方都没有。

几乎就像在运行活动之前评估条件一样,但活动在工作流中的条件之前出现,所以我不明白为什么会这样。

任何人都可以对此有所了解吗?

4

1 回答 1

0

显然它与导致活动被克隆的while循环有关。我通过将活动属性绑定到工作流属性来修复它。有关更多信息,请参阅我在工作流论坛上发布的这篇文章。

于 2010-09-02T20:33:51.337 回答