2017-02-06 36 views
-1

我有几个按钮用于将文本字符串数据从文本框发送到另一页上的文本块。请参阅下面的代码。发送数据到另一个页面问题

但是,只有当我按下所有按钮时,只要按下其中一个按钮,我就会遇到错误。 (请参见下文)

类型“System.NullReferenceException”的异常出现在 WpfApplication4.exe但在用户代码中没有处理 其他信息:未设置为一个 对象的实例对象引用。

+0

的可能重复之前[什么是一个NullReferenceException,以及如何解决它?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –

回答

1

Application.Current.Properties["obj1"]请使用空传播?.可以肯定的是,在案件属性未设置你会不会尝试调用ToString()

textBlock.Text = Application.Current.Properties["obj1"]?.ToString(); 
+0

或检查是否应用程序。 Current.Properties.Contains(“obj1”) – Arie

+0

@klashar非常感谢你......完美地工作了 – Rogan

+0

@Rogan我认为你必须保留属性的前一个值(例如Application.Current.Properties [“prev_obj1” ]),然后在“取消”单击中重新指定它,或者将当前值保留在某个临时变量中并对其进行赋值只有在点击意味着“保存”。 – Arie

0

如果你只需要按下按钮1,那么只有OBJ1问题被设置并且obj2不是。因此Application.Current.Properties [“obj2”]为空。当你调用Application.Current.Properties [“obj2”]。ToString()这和调用null.ToString()是一样的,这就是为什么你得到一个NullReferenceException的原因。

如果你正在使用VS 2015年或以后作为klashar否则建议你可以使用空传播史,你将需要使用if语句来检查,如果该值为null调用toString()

相关问题