【发布时间】:2013-10-21 19:54:50
【问题描述】:
我有这段代码可以正常工作
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);
【问题讨论】:
-
究竟什么不起作用?显示
build_archiveList()的实现。 -
感谢您的快速回答,我对我的原始帖子进行了编辑。 build_archiveList 是 30-40 行,我应该把它全贴在这里吗?
-
在第一个版本中,您的属性是静态的,在第二个版本中,它是实例。该方法怎么样,是静态的还是非静态的?是故意的吗?
-
哎呀,这是一个错字。在两个示例中它都应该是静态的
-
将此属性设为静态是否有任何具体原因?
标签: c# properties private public getter-setter