我有一个活动,它的属性看起来像这样(它们被设置为适当的依赖属性,我只是在这里保持简单):
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,在其他地方不会。
有人能解释一下吗?