我是XAML/Xamarin的新手,我遇到了一些我希望能够帮助我澄清的东西。当属性被清除时,作为ObservableCollection的字段被清除
我知道这个标题是误导性的,但我不能说它有任何不同。
我在我的ViewModel以下属性:
private ObservableCollection<Schedule> _scheduleList;
public ObservableCollection<Schedule> ScheduleList
{
get
{
return _scheduleList;
}
set
{
value = _scheduleList;
}
}
某处行了,我做这样的事情:
private void DayFilter(string week)
{
try
{
var list = _scheduleList.Where(x => x.ScheduleDate.DayOfWeek.ToString() == week);
ObservableCollection<Schedule> newlist = new ObservableCollection<Schedule>(list);
ScheduleList.Clear(); // <- this line clears out _scheduleList as well
foreach (var item in newlist)
{
ScheduleList.Add(item);
}
}
catch (Exception ex)
{
throw ex;
}
}
每当ScheduleList.Clear()被调用时,还会清除出_scheduleList
这是私人领域。
我知道这与ObservableCollection这个事实有关,但是它的要求是应该的,而且我找不到一种方法来保留_scheduleList
上的值,因为我需要填充整个应用程序的生命周期。
有没有领域_scheduleList
不清除?
当调用Clear()时,你还希望发生什么? (这与ObservableCollection无关,但这是因为公共属性ScheduleList只返回包含在私有'_scheduleList'字段中的实例) – bassfader
@bassfader,我想清除ScheduleList属性,所以我可以用新的值填充它。被认为是创造第二个领域,这将是只读领域,应该工作,对吧? – JadedEric