我是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