public IRealmCollection<FuCode> FuCodes { get; private set; }
private Realm _realm;
public async Task SubscribeAsync(CancellationToken cancellationToken)
{
_realm = await Realm.GetInstanceAsync(cancellationToken: cancellationToken);
FuCodes = _realm.All<FuCode>().AsRealmCollection();
FuCodes.CollectionChanged += OnSubscribeCollectionChanged;
SubscribeForPropertyChanged(FuCodes); //NO1
}
private void OnSubscribeCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Add)
{
SubscribeForPropertyChanged(e.NewItems.Cast<FuCode>()); //NO2
}
}
private void SubscribeForPropertyChanged(IEnumerable<FuCode> fuCodes)
{
foreach (FuCode fuCode in fuCodes)
{
fuCode.PropertyChanged += OnSubscribePropertyChanged;
}
}
private void OnSubscribePropertyChanged(object sender, PropertyChangedEventArgs e)
{
L.Trace($"{e.PropertyName}");
}
NO1 → not fire propertychagned!!!
NO2 → fire propertychagned!!!
why?