代码之家  ›  专栏  ›  技术社区  ›  Mike Pateras

工作流3.5活动属性在条件中为空,在其他任何地方都不为空

  •  0
  • Mike Pateras  · 技术社区  · 14 年前

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

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

    而执行就是这样:

    SelectedType = TypeList[Index];
    

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

    现在我知道SelectedType设置正确了,我甚至可以将另一个活动指向它并从中打印出一些值。所以我很肯定这种活动没有什么问题。

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

    它的计算结果为false(意味着它将SelectedType计算为null)。我很确定activity cast是正确的(我一直都是这样做的),如果不是的话,我在尝试访问SelectedType时不会得到一个空引用异常吗?所以我很确定我在这里没有做错什么,但是出于某种原因SelectedType在那个条件下会变成null,在其他地方不会。

    有人能解释一下吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Mike Pateras    14 年前

    显然,这与while循环导致活动被克隆有关。我通过将活动属性绑定到工作流属性来修复它。有关详细信息,请参阅 this post

    推荐文章