0

我正在尝试在 WPF 中制作一个简单的应用程序,但我遇到了一些异常情况。我有 2 个类:一个部分类(用于 WPF 窗口)和另一个我自己设置的公共类。当我尝试访问从 WPF 窗口类创建的类时,我遇到了 TargetInvocationException,告诉我对象引用未设置为对象的实例。但是,导致异常的对象引用设置为对象的实例。

这是我的代码:

public partial class MainWindow : Window
{
    CurrentParent CP = new CurrentParent();
    public MainWindow()
    {
        InitializeComponent();
        CP.Par.Add("MainCanvas");
    }
}

public class CurrentParent
{
    private List<string> _Par;

    public List<string> Par
    {
        get { return _Par; }
        set { _Par = value; }
    }
}

当然,这是在一个命名空间中。我看不出我应该得到这个错误的任何原因,因为我的对象引用 CP 显然是 CurrentParent 的一个实例。

有人知道如何解决这个问题吗?提前致谢!

-伊恩

4

2 回答 2

0

CurrentParent该字段_Par中从未初始化,因此CP.Par为空。当框架尝试调用Add. 您需要初始化_Par

public class CurrentParent
{
    private List<string> _Par = new List<string>();

    public List<string> Par
    {
        get { return _Par; }
        set { _Par = value; }
    }
}
于 2011-08-25T01:05:17.923 回答
0

您没有在 CurrentParent 类中实例化 _Par 成员。这应该可以解决您的问题:

public class CurrentParent
{
 public CurrentParent()
 {
  this.Par = new List<String>();
 }

 public List<String> Par { get; set; }
}

请注意,该示例使用自动属性。这是一个更详细的示例,可以更好地突出您的问题:

public class CurrentParent
{
 public CurrentParent()
 {
  this._Par = new List<String>();
 }

 public List<String> Par
 {
  get { return this._Par; }
  set { this._Par = value; }
 }

 private List<String> _Par;
}
于 2011-08-25T01:06:42.450 回答