public ListAdapterWithAddNotifications(IList <T> source, ItemAddedEventHandler addedEventHandler,
                                               AddingItemEventHandler addingEventHandler)
        {
            this.Source = source;

            if (addingEventHandler != null)
            {
                this.AddingItem += addingEventHandler;

                // Fire events for existing source items, removing them as necessary
                source
                .Where(x => !ShouldIncludeItem(x))
                .ToList()
                .ForEach(x => source.Remove(x));
            }

            if (addedEventHandler != null)
            {
                this.ItemAdded += addedEventHandler;

                // Fire events for existing source items
                foreach (var item in source)
                {
                    OnItemAdded(item);
                }
            }
        }
        public CovariantCollectionAdapterWithAddNotifications(
            ICollection <TDerived> source,
            ItemAddedEventHandler addedEventHandler,
            AddingItemEventHandler addingEventHandler)
            : base(source)
        {
            if (addingEventHandler != null)
            {
                AddingItem += addingEventHandler;

                // Fire events for existing source items, removing them as necessary
                source
                .Where(x => !ShouldIncludeItem(x))
                .ToList()
                .ForEach(x => source.Remove(x));
            }

            if (addedEventHandler != null)
            {
                ItemAdded += addedEventHandler;

                // Fire events for existing source items
                foreach (var item in source)
                {
                    OnItemAdded(item);
                }
            }
        }
Beispiel #3
0
        public void Enqueue(T item)
        {
            queue.Enqueue(item);
            ItemAddedEventHandler handler = ItemAddedEvent;

            if (handler != null)
            {
                handler();
            }
        }
Beispiel #4
0
        protected void OnItemAddedEvent(object objSender, ItemAddedEventArgs <TObjectType> objArguments)
        {
            if (Initializing == false)
            {
                ItemAddedEventHandler <TObjectType> objHandler = ItemAddedEventAsync;
                if (objHandler != null)
                {
                    AsyncHelper.FireAndForget(objHandler, objSender, objArguments);
                }

                objHandler = ItemAddedEvent;
                if (objHandler != null)
                {
                    objHandler(objSender, objArguments);
                }
            }
        }
Beispiel #5
0
 public CustomCollection(ItemAddedEventHandler handler)
 {
     myHandler = handler;
 }
        public static void RegisterItemEvents([NotNull] DependencyObject ownerWindow, [CanBeNull] ItemAddedEventHandler added = null, [CanBeNull] ItemDeletedEventHandler deleted = null, [CanBeNull] ItemDuplicatedEventHandler duplicated = null, [CanBeNull] ItemModifiedEventHandler modified = null, [CanBeNull] ItemMovedEventHandler moved = null, [CanBeNull] ItemRenamedEventHandler renamed = null, [CanBeNull] ItemsSavedEventHandler saved = null, [CanBeNull] ItemXmlPastedEventHandler xmlPasted = null, [CanBeNull] ItemSerializedEventHandler serialized = null)
        {
            Assert.ArgumentNotNull(ownerWindow, nameof(ownerWindow));

            if (added != null)
            {
                ItemAdded += added;
            }

            if (deleted != null)
            {
                ItemDeleted += deleted;
            }

            if (duplicated != null)
            {
                ItemDuplicated += duplicated;
            }

            if (modified != null)
            {
                ItemModified += modified;
            }

            if (moved != null)
            {
                ItemMoved += moved;
            }

            if (renamed != null)
            {
                ItemRenamed += renamed;
            }

            if (saved != null)
            {
                ItemsSaved += saved;
            }

            if (xmlPasted != null)
            {
                ItemXmlPasted += xmlPasted;
            }

            if (serialized != null)
            {
                ItemSerialized += serialized;
            }

            UnloadedEventHandler unloaded = null;

            unloaded = delegate(object sender, object o)
            {
                if (!ownerWindow.IsContainedIn(o))
                {
                    return;
                }

                if (added != null)
                {
                    ItemAdded -= added;
                }

                if (deleted != null)
                {
                    ItemDeleted -= deleted;
                }

                if (duplicated != null)
                {
                    ItemDuplicated -= duplicated;
                }

                if (modified != null)
                {
                    ItemModified -= modified;
                }

                if (moved != null)
                {
                    ItemMoved -= moved;
                }

                if (renamed != null)
                {
                    ItemRenamed -= renamed;
                }

                if (saved != null)
                {
                    ItemsSaved -= saved;
                }

                if (xmlPasted != null)
                {
                    ItemXmlPasted -= xmlPasted;
                }

                if (serialized != null)
                {
                    ItemSerialized -= serialized;
                }

                Unloaded -= unloaded;
            };

            Unloaded += unloaded;
        }
 public ListAdapterWithAddNotifications(IList <T> source, ItemAddedEventHandler addedEventHandler)
     : this(source, addedEventHandler, null)
 {
 }
 public CovariantIListAdapterWithAddNotifications(IList <TDerived> source, ItemAddedEventHandler addedEventHandler)
     : this(source, addedEventHandler, null)
 {
 }
 public CollectionAdapterWithAddNotifications(ICollection <T> source, ItemAddedEventHandler addedEventHandler)
     : this(source, addedEventHandler, null)
 {
 }