Код: Выделить всё
mono-rt] [ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: Cannot find index of original item. Either it does not exist in the list or the hashcode has mutated
[mono-rt] at DynamicData.ListEx.Replace[PlaceItem](IList`1 source, PlaceItem original, PlaceItem replaceWith) in /_/src/DynamicData/List/ListEx.cs:line 378
[mono-rt] at DynamicData.Binding.ObservableCollectionAdaptor`2[[Iratrips.Itineraries.ItemViewModels.PlaceItem, Iratrips.Maui, Version=3.5.702.0, Culture=neutral, PublicKeyToken=null],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].DoUpdate(IChangeSet`2 changes, IObservableCollection`1 list) in /_/src/DynamicData/Binding/ObservableCollectionAdaptor.cs:line 154
[mono-rt] at DynamicData.Binding.ObservableCollectionAdaptor`2[[Iratrips.Itineraries.ItemViewModels.PlaceItem, Iratrips.Maui, Version=3.5.702.0, Culture=neutral, PublicKeyToken=null],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Adapt(IChangeSet`2 changes, IObservableCollection`1 collection) in /_/src/DynamicData/Binding/ObservableCollectionAdaptor.cs:line 130
[mono-rt] at DynamicData.ObservableCacheEx.c__DisplayClass28_0`2[[Iratrips.Itineraries.ItemViewModels.PlaceItem, Iratrips.Maui, Version=3.5.702.0, Culture=neutral, PublicKeyToken=null],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].b__1(IChangeSet`2 changes) in /_/src/DynamicData/Cache/ObservableCacheEx.cs:line 582
[mono-rt] at System.Reactive.Linq.ObservableImpl.Select`2.Selector._[[DynamicData.IChangeSet`2[[Iratrips.Itineraries.ItemViewModels.PlaceItem, Iratrips.Maui, Version=3.5.702.0, Culture=neutral, PublicKeyToken=null],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], DynamicData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=null],[DynamicData.IChangeSet`2[[Iratrips.Itineraries.ItemViewModels.PlaceItem, Iratrips.Maui, Version=3.5.702.0, Culture=neutral, PublicKeyToken=null],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], DynamicData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=null]].OnNext(IChangeSet`2 value)
[mono-rt] --- End of stack trace from previous location ---
[mono-rt] at System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow(Exception exception)
[mono-rt] at System.Reactive.ExceptionHelpers.Throw(Exception exception)
[mono-rt] at System.Reactive.Stubs.c.b__2_1(Exception ex)
[mono-rt] at System.Reactive.AnonymousObserver`1[[DynamicData.IChangeSet`2[[Iratrips.Itineraries.ItemViewModels.PlaceItem, Iratrips.Maui, Version=3.5.702.0, Culture=neutral, PublicKeyToken=null],[System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], DynamicData, Version=9.0.0.0, Culture=neutral, PublicKeyToken=null]].OnErrorCore(Exception error)
Код: Выделить всё
public class Sample
{
public void Configure()
{
var connection = _placeCache.Connect();
//Places
var PlacesObservable = connection
.Sort(SortExpressionComparer.Ascending(k => k.Sequence))
.Filter(k =>
{
//Few conditions here
return true;
})
.TransformAsync(async (place) =>
{
//Some code here which creates PlaceItem using async.
return (BasePlaceItem)item;
})
.Group(k => k.Date.Date)
.TransformMany(k =>
{
//Date Header
//ID
PlaceItem item = new PlaceDateItem(k.Key, GuidUtil.GenerateGuid(k.Key.ToString(CultureInfo.InvariantCulture)), this);
var obs = new ObservableCollection() { item };
var osbSet = obs.ToObservableChangeSet(m => m.Id);
//Gaps
var gapObservable = k.Cache
.Connect()
.Transform(m =>
{
var item = ((PlaceItem)m);
//ID
var id = GuidUtil.GenerateGuid(item.PlaceId + "nxt");
var gap = new PlaceGapItem(id, this);
return (PlaceItem)gap;
//I think error comes here in this observable.
}, transformOnRefresh: true);
var groupObservable = k.Cache
.Connect();
var disposable = groupObservable
.Merge(osbSet)
.Merge(gapObservable)
.Bind(out var items)
.Subscribe();
Disposables.Add(disposable);
return items;
}, x => x.Id)
.Merge(footerbSet)
.Sort(SortExpressionComparer.Ascending(item => item.Date));
var disposable = PlacesObservable
.ObserveOn(MainThread.AppContext)
.Bind(PlaceItems)
.Subscribe();
}
}
Код: Выделить всё
_placeCacheПодробнее здесь: https://stackoverflow.com/questions/791 ... t-does-not