我有几个按钮可以将文本字符串数据从文本框发送到另一个页面上的文本块。请参阅下面的代码。
然而,它只有在我按下所有按钮时才有效,每当我只按其中一个按钮时,我就会遇到错误。 (请参阅下文)
类型' System.NullReferenceException'的例外情况发生在 WpfApplication4.exe但未在用户代码中处理 附加信息:对象引用未设置为的实例 对象
答案 0 :(得分:1)
Application.Current.Properties["obj1"]
请使用空传播?.
以确保在未设置属性的情况下您不会尝试为其调用ToString()
textBlock.Text = Application.Current.Properties["obj1"]?.ToString();
答案 1 :(得分:0)
如果你只按下按钮1,那么只设置obj1而obj2不设置。因此,Application.Current.Properties [" obj2"]为空。
当你调用Application.Current.Properties [" obj2"]。ToString()时,这与调用null.ToString()相同,这就是你得到NullReferenceException的原因。
如果您使用的是VS 2015或更高版本,则可以使用null传播,因为klashar建议您在调用ToString()之前需要使用if语句检查值是否为null