Ich bin relativ neu zu XAML/Xamarin und ich bin auf etwas, ich hoffe, jemand kann mir helfen, zu klären.Feld wie ObservableCollection wird gelöscht, wenn Eigenschaft gelöscht wird
Ich weiß, der Titel ist irreführend, aber ich könnte es nicht anders ausdrücken.
Ich habe die folgende Eigenschaft in meinem Viewmodel:
private ObservableCollection<Schedule> _scheduleList;
public ObservableCollection<Schedule> ScheduleList
{
get
{
return _scheduleList;
}
set
{
value = _scheduleList;
}
}
nach unten irgendwo die Linie, das tue ich etwas wie folgt aus:
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;
}
}
Wenn ScheduleList.Clear() aufgerufen wird, löscht es auch out _scheduleList
das ist das private Feld.
Ich weiß, das hat etwas damit zu tun, dass dies ObservableCollection ist, aber die Anforderung ist, dass es sein sollte, und ich konnte keinen Weg finden, den Wert auf _scheduleList
zu behalten, da ich dieses Feld in der gesamten Lebensdauer der Anwendung.
Ist da weg, dass das Feld _scheduleList
nicht gelöscht wird?
Was erwarten Sie sonst noch, wenn 'Clear()' aufgerufen wird? (Dies hat nichts mit der 'ObservableCollection' zu tun, aber es liegt daran, dass die öffentliche Eigenschaft' ScheduleList' nur die im privaten '_scheduleList' Feld enthaltene Instanz zurückgibt.) – bassfader
@bassfader, ich möchte die ScheduleList-Eigenschaft aus, also Ich kann es mit neuen Werten füllen. Wurde daran gedacht, ein zweites Feld zu schaffen, das nur Lesefeld sein wird, das sollte funktionieren, oder? – JadedEric