Exemple #1
0
        /// <summary>
        /// Dissociates group from parent collection.
        /// </summary>
        private void DetachParentCollection()
        {
            _parentCollectionChangedListener.Detach();
            _parentCollection = null;

            if (_aggregateResultsChangedListener != null)
                _aggregateResultsChangedListener.Detach();
        }
Exemple #2
0
        /// <summary>
        /// Sets the parent collection instance.
        /// </summary>
        /// <param name="collection">The parent collection instance.</param>
        public void SetParentCollection(GroupRecordKeyedCollection collection)
        {
            if (_parentCollection != null)
                DetachParentCollection();

            _parentCollection = collection;
            _parentCollectionChangedListener =
                new CollectionChangedListener(this, _parentCollection)
                {
                    OnEventAction = OnParentCollectionChanged,
                    OnDetachAction = OnDetachParentCollectionChanged
                };
            _parentCollection.CollectionChanged += _parentCollectionChangedListener.OnEvent;

            if (ParentGroup != null)
            {
                var parentGroupCode = GenerateGroupCode(ParentGroup);

                GroupRecord parentRecord;
                _parentCollection.TryGetValue(parentGroupCode, out parentRecord);

                ParentRecord = parentRecord;
            }
        }