Beispiel #1
0
            bool IWeakEventListener.ReceiveWeakEvent(Type managerType, object sender, EventArgs e)
            {
                if (typeof(CollectionChangedEventManager) == managerType)
                {
                    Debug.Assert(sender == m_groupLevelDescriptions);

                    switch ((( NotifyCollectionChangedEventArgs )e).Action)
                    {
                    case NotifyCollectionChangedAction.Move:
                    case NotifyCollectionChangedAction.Remove:
                        break;

                    default:
                        if (GroupLevelDescriptionFinder.TryFind(m_groupLevelDescriptions, m_groupDescription, out m_groupLevelDescription))
                        {
                            this.RaisePropertyChanged("GroupLevelDescription");
                            this.Dispose();
                        }
                        break;
                    }

                    return(true);
                }

                return(false);
            }
Beispiel #2
0
            internal GroupLevelDescriptionFinder(GroupDescription groupDescription, IEnumerable <GroupLevelDescription> groupLevelDescriptions)
            {
                if (groupDescription == null)
                {
                    throw new ArgumentNullException("groupDescription");
                }

                if (groupLevelDescriptions == null)
                {
                    throw new ArgumentNullException("groupLevelDescriptions");
                }

                if (!GroupLevelDescriptionFinder.TryFind(groupLevelDescriptions, groupDescription, out m_groupLevelDescription))
                {
                    m_groupDescription       = groupDescription;
                    m_groupLevelDescriptions = groupLevelDescriptions;

                    this.RegisterCollectionChanged(( INotifyCollectionChanged )groupLevelDescriptions);
                }
            }
    internal LateGroupLevelDescription( GroupDescription groupDescription, IEnumerable<GroupLevelDescription> groupLevelDescriptions )
    {
      if( groupDescription == null )
        throw new ArgumentNullException( "groupDescription" );

      var finder = new GroupLevelDescriptionFinder( groupDescription, groupLevelDescriptions );

      m_groupDescription = groupDescription;
      m_groupLevelDescription = finder.GroupLevelDescription;

      if( m_groupLevelDescription == null )
      {
        m_finder = finder;
        m_finder.PropertyChanged += new PropertyChangedEventHandler( this.OnGroupLevelDescriptionFound );
      }
      else
      {
        finder.Dispose();

        PropertyChangedEventManager.AddListener( m_groupLevelDescription, this, string.Empty );
      }
    }
Beispiel #4
0
        internal LateGroupLevelDescription(GroupDescription groupDescription, IEnumerable <GroupLevelDescription> groupLevelDescriptions)
        {
            if (groupDescription == null)
            {
                throw new ArgumentNullException("groupDescription");
            }

            var finder = new GroupLevelDescriptionFinder(groupDescription, groupLevelDescriptions);

            m_groupDescription      = groupDescription;
            m_groupLevelDescription = finder.GroupLevelDescription;

            if (m_groupLevelDescription == null)
            {
                m_finder = finder;
                m_finder.PropertyChanged += new PropertyChangedEventHandler(this.OnGroupLevelDescriptionFound);
            }
            else
            {
                finder.Dispose();

                PropertyChangedEventManager.AddListener(m_groupLevelDescription, this, string.Empty);
            }
        }