我对XAML/Xamarin比较陌生,我正在遇到一些我希望有人可以帮我澄清的事情.
我知道标题是误导性的,但我不能说它有任何不同.
我的ViewModel中有以下属性:
private ObservableCollection<Schedule> _scheduleList;
public ObservableCollection<Schedule> ScheduleList
{
get
{
return _scheduleList;
}
set
{
value = _scheduleList;
}
}
Run Code Online (Sandbox Code Playgroud)
在某个地方,我做这样的事情:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
每当调用ScheduleList.Clear()时,它也会清除_scheduleList哪个是私有字段.
我知道这与ObservableCollection的事实有关,但是要求是它应该是,并且我找不到保留值的方法_scheduleList,因为我需要在应用程序的整个生命周期中填充这个字段.
那场战场_scheduleList没有被淘汰吗?
这就是C#的工作原理
ScheduleList.Clear();
Run Code Online (Sandbox Code Playgroud)
返回对_scheduleList的引用(这是公众得到的),然后在其上调用Clear.
在您的方案中,您可能需要维护两个完全独立的数据副本 - 原始数据,以及用于过滤/显示数据的数据.
| 归档时间: |
|
| 查看次数: |
49 次 |
| 最近记录: |