0

我有这个工作正常的代码

public partial class MainWindow : Window
{
    private static ObservableCollection<Archive> _archiveList = new ObservableCollection<Archive>();
    public static ObservableCollection<Archive> archiveList { get { return _archiveList; } }
}
private void build_archiveList()
{
    // create new Archive
    // add the new Archive to archiveList
}

...但是如果我尝试使用自动实现的属性,它就不起作用,我不明白为什么。具有自动实现属性的代码:

public partial class MainWindow : Window
{
    public static ObservableCollection<Archive> archiveList { get; private set; }
    public MainWindow()
    {
            InitializeComponent();

            archiveList = new ObservableCollection<Archive>();
            build_archiveList();
    }
}

为什么第二种方法不起作用?

编辑:抱歉不完整,列表与数据网格绑定,并且在使用第二种方法时数据网格保持为空(尽管添加了新存档,因为两种方法都增加了 archiveList.count)

build_archiveList 如何将档案添加到列表中(observablecollection):

tmpArchive.content.Add(new ArchiveFile(bfile.FileName, bfile.Crc.ToString(), false));
archiveList.Add(tmpArchive);
4

1 回答 1

1

移动

archiveList = new ObservableCollection<Archive>();

到静态构造函数。

解释

您绑定到 null 的自动属性(绑定发生在InitializeComponent),然后添加新列表。

于 2013-10-21T21:09:55.793 回答