【问题标题】:C# ObservableCollection Add errorC# ObservableCollection 添加错误
【发布时间】:2014-10-22 11:59:42
【问题描述】:

我有一个自定义控件:

public class Detail
{
    public string Text {get; set;}
}

public class Header : Detail
{
    public int Size {get; set;}
    public ObservableCollection<Detail> Details;
}

public class MyControl : Control
{
    public ObservableCollection<Header> Headers;
}

我将控件添加到表单中,添加了一些 Header 对象,每个对象都添加了一些 Detail 对象。到目前为止一切正常。

但是,当我关闭表单并再次打开它时,我收到了错误:

消息 1 方法 'System.Collections.ObjectModel.ObservableCollection`1[[Utils.Header, Utils, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].Add' 未找到。

而formdesigner类中的代码是这样的:

Header header1 = new Utils.Header();

resources.ApplyResources(header1, "header1");
this.taskBar1.Headers.Add(header1);  //This line causes the error

可能是什么问题?

【问题讨论】:

  • 您是否尝试使用 xaml 来实现您想要的?
  • formdesigner 类中的代码 哎呀,希望你不要直接编辑blablabla.Designer.cs?
  • @Tigran 这是一个 WinForms 项目
  • @Sinatr 不,我只是打开它来查看错误行
  • 您的代码显示了两个 ObservableCollections - Details 和 Headers,但错误出现在名为 Groups 的成员上。您是否有机会包含相关代码?

标签: c# winforms user-controls


【解决方案1】:

我将 ObservableCollection 更改为 BindingList 并在类上实现了 INotifyPropertyChanged,它看起来工作正常。

注意:ObservableCollection 适用于 WPF 而不是 WinForms!

【讨论】:

    猜你喜欢
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多