【问题标题】:Object Reference Not set to Instance WPF Designer对象引用未设置为实例 WPF 设计器
【发布时间】:2014-05-01 08:37:15
【问题描述】:

我已经看过下面的链接

WPF, 'Object reference not set to an instance of an object' in Designer

我的问题类似,但略有不同。我没有在 XAML 本身中设置任何数据上下文。我正在创建自己的用户控件,并在另一个中使用它。

<usercontrols:MyControl1 x:Name="MyControl1"  Grid.Row="5"  Height="Auto" Width="Auto">

    </usercontrols:MyControl1>

这是我在第二个控件中用来引用 MyControl1 的代码。这通常不会引发任何异常。但是,当我在 MyControl1 的构造函数中指定一些代码时,异常来了。它还说“无法创建 MyControl1 的实例”。

【问题讨论】:

  • 你是否对用户控件使用了任何样式?
  • 您在构造函数中放入的代码是什么?
  • 创建其他用户控件的实例 .. 像 _SampleCOntrol=new MyControl3(Param1);我很确定 Param1 在初始化之前将为空。大概这就是问题所在。但是为什么设计师会抛出错误?我的意思是它可以忽略它并加载控制..不??

标签: c# wpf xaml default-constructor


【解决方案1】:

只需在 MainPage.xaml.cs 页面中添加这一行

使用静态属性 DesignerProperties.IsInDesignTool 来确定您的代码当前是否正在设计器工具中使用。

InitializeComponent();
if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(this))
{
    //Code that throws the exception
}

【讨论】:

  • 设计师正在触发我的用户控件加载事件。代码获取对窗口的引用,它所在的窗口在设计模式下会导致异常。添加此检查解决了我的问题,谢谢。
猜你喜欢
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多