wpf 出现错误 System.NullReferenceException:“未将对象引用设置到对象的实例“

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf 出现错误 System.NullReferenceException:“未将对象引用设置到对象的实例“相关的知识,希望对你有一定的参考价值。

点击按钮,实现 contentControl.Content = new userControl();usercontrol是我写的控件,一开始能用。然后我调整了一下其中组件的位置,给按钮写了几个方法,然后就突然报错了,为什么?

就是没有给对象变量赋值,这个变量还保持在null值上。
你看一下你的变量是不是初始化了。或是不是关联到其它实例上了。
参考技术A 引用设置到

WPF DataBinding:Nullable Int 仍然出现验证错误?

【中文标题】WPF DataBinding:Nullable Int 仍然出现验证错误?【英文标题】:WPF DataBinding: Nullable Int still gets a validation error? 【发布时间】:2011-03-19 03:45:16 【问题描述】:

我有一个文本框数据通过代码绑定到一个可为空的 int。如果我从文本框中删除数据,它会给我一个验证错误(它周围的红色边框)。

这是我的绑定代码:

ZipBinding = new Binding("Zip");
ZipBinding.Source = Address;
zipTextBox.SetBinding(TextBox.TextProperty, ZipBinding);

public Int32? Zip  get  ...  set  ...  

它被明确标记为 Nullable 那么为什么当我清除文本框时 WPF 想要给我一个验证问题?

【问题讨论】:

【参考方案1】:

验证失败,因为它无法将空字符串转换为可为空的整数。在 Binding 上将TargetNullValue 设置为 string.empty,它将把空字符串转换为 null,这将是有效的。

【讨论】:

效果很好!请参阅此答案以了解如何在 XAML ***.com/a/1895482/83111 中执行此操作 不要将其设置为 String.Empty,因为这样您会在模型中的空值字段中看到文本“String.Empty”。请改用空字符串。示例:<TextBox Text="Binding MyNumericProperty, TargetNullValue=''" /> @Beauty 您可以将其设置为 string.Empty:<TextBox Text="Binding MyNumericProperty, TargetNullValue=x:Static system:String.Empty" />(包括 UserControl 标题处的系统:xmlns:system="clr-namespace:System;assembly=mscorlib")。这与将其设置为值为“string.Empty”的字符串不同......就像有人告诉您将字符串设置为空时,您不要这样做username = "null";【参考方案2】:

一个空的文本框!= null。

您可能需要调整 ValidationRule 以容纳空字符串作为条目。或者,您可以创建一个转换器来获取空字符串并将它们转换为 null。

【讨论】:

所以它失败了,因为它试图将 String.Empty 解析为 Int32? ...如果是这样的话,是的,我想我必须创建一个 StringEmpty 到 Null 转换器。

以上是关于wpf 出现错误 System.NullReferenceException:“未将对象引用设置到对象的实例“的主要内容,如果未能解决你的问题,请参考以下文章

开机出现加载DLL文件错误!文件名为wpf5kwe.dll 请大虾帮我!我会加高分的!

我用c#wpf做的 菜单,Command和键盘事件,出现这个错误,有没有大神知道这个错误怎样解

当我尝试使用 MVVM WPF 中的命令修改对象时,为啥在视图模型中出现空错误?

wpf 出现错误 System.NullReferenceException:“未将对象引用设置到对象的实例“

wpf中mousedown事件在执行几次拖动后,老出现方法不正确的情况,有解决方法的大侠给解决一下,谢谢

c#WPF带有Highchart的Web浏览器,来自外部源的Javascript无法正常工作“此页面上的脚本出现错误”