public int AddCrumb(ICrumb crumb)
        {
            if (crumb == null)
            {
                throw new ArgumentNullException("Crumb");
            }

            Crumbs.Add(crumb);
            AddViewToRegion(crumb.Content);
            return(Crumbs.Count);
        }
        public int SetCrumbDescription(string description)
        {
            if (Crumbs.Count < 1)
            {
                return(-1);
            }

            ICrumb crumb = Crumbs.ElementAt <ICrumb>(Crumbs.Count - 1);

            crumb.Description = description;
            return(Crumbs.Count);
        }
Пример #3
0
        private IEnumerable <ICrumb> GetBroadcasters(ICrumb observer)
        {
            var result = new List <ICrumb>();

            if (observer?.Broadcaster != null)
            {
                result.Add(observer.Broadcaster);
                result.AddRange(GetBroadcasters(observer.Broadcaster));
            }

            return(result);
        }
        public int RemoveCrumb()
        {
            if (Crumbs.Count < 1)
            {
                return(-1);
            }

            Crumbs.RemoveAt(Crumbs.Count - 1);

            ICrumb crumb = Crumbs.ElementAt <ICrumb>(Crumbs.Count - 1);

            AddViewToRegion(crumb.Content);

            return(Crumbs.Count);
        }
        private void OnCrumbAccessed(ICrumb crumb)
        {
            IRegion region = this._regionManager.Regions[RegionNames.MainRegion];

            var indexInicial = Crumbs.IndexOf(crumb);

            // Remove na ordem inversa
            for (int i = (Crumbs.Count - 1); i > indexInicial; i--)
            {
                ICrumb c = Crumbs.ElementAt <ICrumb>(i);
                region.Deactivate(c.Content.View);
                region.Remove(c.Content.View);
                Crumbs.RemoveAt(i);
            }

            region.Activate(crumb.Content.View);
        }
Пример #6
0
 public virtual void UnregisterObserver(ICrumb observer)
 {
     Observers.Remove(observer);
 }
Пример #7
0
 public virtual void RegisterObserver(ICrumb observer)
 {
     Observers.Add(observer);
     observer.Broadcaster = this;
 }