我已经定义了一个具有以下属性的类:
private ObservableCollection<Job> allJobs;
访问权限定义如下:
public ObservableCollection<Job> AllJobs
{
get
{
return this.allJobs;
}
set
{
this.allJobs = value;
}
}
当我将整个ObservableCollection分配给属性时,get set工作正常,该set可以很好地检索它。但为什么我丢失了通常允许我“添加”的所有方法(即将1个作业添加到集合中)?
目前我不得不创建一个临时集合来填充然后分配给allJobs属性,我不应该这样做。
任何想法??
答案 0 :(得分:4)
你对'迷失方法'的意思是什么?你试过AllJobs.Add()吗?以下代码适用于我:
void Main()
{
AllJobs = new ObservableCollection<Job>();
AllJobs.Add(new Job());
}
public class Job { }
private ObservableCollection<Job> allJobs;
public ObservableCollection<Job> AllJobs
{
get
{
return this.allJobs;
}
set
{
this.allJobs = value;
}
}
修改强>
根据您的评论,我修改了我的代码如下,但一切仍然适用于我,但我注意到您没有看到在任何地方初始化allJobs集合。
void Main()
{
PresentationManager.Instance.AllJobs.Add(new Job());
}
public class Job { }
sealed class PresentationManager
{
public static readonly PresentationManager Instance = new PresentationManager();
private PresentationManager()
{
allJobs = new ObservableCollection<Job>();
}
private ObservableCollection<Job> allJobs;
public ObservableCollection<Job> AllJobs
{
get { return this.allJobs; }
set { this.allJobs = value; }
}
}
答案 1 :(得分:1)
通常你不想要这样一个属性的setter,因为你在使用setter时会丢失绑定到ObservableCollection的所有事件。
public ObservableCollection<Job> AllJobs { get; private set; }