/// <summary> /// コレクション変更時のイベントハンドラー /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CollectionChangedEvent(object?sender, NotifyCollectionChangedEventArgs e) { // 非同期版イベントが購読されていなければ何もしない if (CollectionChangedAsync is null) { return; } Task.WhenAll( CollectionChangedAsync.GetInvocationList() .OfType <NotifyCollectionChangedEventAsync>() .Select(x => x.Invoke(sender, e)) ); }
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e) { base.OnCollectionChanged(e); _collectionChangedTask = CollectionChangedAsync?.Invoke(this, e); }