将数据发送到另一个页面问题
Sending data to another page issue
我有几个按钮可以将文本字符串数据从文本框发送到另一页上的文本块。请看下面的代码。
但是,它只有在我按下所有按钮时才有效,每当我只按下其中一个按钮时,我 运行 就会出错。 (请看下文)
An exception of type 'System.NullReferenceException' occurred in
WpfApplication4.exe but was not handled in user code
Additional information: Object reference not set to an instance of an
object.
Application.Current.Properties["obj1"]
的问题请使用空传播 ?.
以确保在未设置 属性 的情况下您不会尝试为其调用 ToString()
textBlock.Text = Application.Current.Properties["obj1"]?.ToString();
如果您只按下按钮 1,则只有 obj1 被设置而 obj2 没有。 Application.Current.Properties["obj2"] 因此为空。
当您调用 Application.Current.Properties["obj2"].ToString() 时,这与调用 null.ToString() 相同,这就是您得到 NullReferenceException 的原因。
如果您使用的是 VS 2015 或更高版本,您可以按照 klashar 的建议使用 null 传播,否则您将需要在调用 ToString() 之前使用 if 语句检查值是否为 null
我有几个按钮可以将文本字符串数据从文本框发送到另一页上的文本块。请看下面的代码。
但是,它只有在我按下所有按钮时才有效,每当我只按下其中一个按钮时,我 运行 就会出错。 (请看下文)
An exception of type 'System.NullReferenceException' occurred in WpfApplication4.exe but was not handled in user code Additional information: Object reference not set to an instance of an object.
Application.Current.Properties["obj1"]
的问题请使用空传播 ?.
以确保在未设置 属性 的情况下您不会尝试为其调用 ToString()
textBlock.Text = Application.Current.Properties["obj1"]?.ToString();
如果您只按下按钮 1,则只有 obj1 被设置而 obj2 没有。 Application.Current.Properties["obj2"] 因此为空。
当您调用 Application.Current.Properties["obj2"].ToString() 时,这与调用 null.ToString() 相同,这就是您得到 NullReferenceException 的原因。
如果您使用的是 VS 2015 或更高版本,您可以按照 klashar 的建议使用 null 传播,否则您将需要在调用 ToString() 之前使用 if 语句检查值是否为 null