Beispiel #1
0
        private Boolean IsNeedToShowInternal(ObjectAbstractView view, Dictionary <ObjectAbstractView, Boolean> dic)
        {
            Boolean result;

            if (dic.TryGetValue(view, out result))
            {
                return(result);
            }

            if (view.Title.Contains("Yes"))
            {
                dic.Add(view, true);
                return(true);
            }

            foreach (ObjectAbstractView child in view.BindableChilds)
            {
                if (IsNeedToShowInternal(child, dic))
                {
                    dic.Add(view, true);
                    return(true);
                }
            }

            dic.Add(view, false);
            return(false);
        }
Beispiel #2
0
        private Boolean IsNeedToShowInternal(ObjectAbstractView view)
        {
            if (view.Title.Contains("Yes"))
            {
                return(true);
            }

            return(view.BindableChilds.Count > 0);
        }
        public Boolean TryAdd(ObjectMessage message)
        {
            lock (_values)
            {
                if (_keyToIndex.ContainsKey(message.InstanceId))
                {
                    return(false);
                }

                ObjectAbstractView item = Wrap(message);
                Int32 index             = _keyToIndex.Count;
                _keyToIndex.Add(message.InstanceId, index);
                _values.Add(item);

                NotifyCollectionChangedEventArgs args = new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, new[] { item }, index);
                RaiseCollectionChanged(args);
                return(true);
            }
        }
        public override Int32 IndexOf(Object value)
        {
            ObjectAbstractView view = value as ObjectAbstractView;

            if (view == null)
            {
                return(-1);
            }

            lock (_values)
            {
                Int32 index;
                if (_keyToIndex.TryGetValue(view.Message.InstanceId, out index))
                {
                    return(index);
                }

                return(-1);
            }
        }
Beispiel #5
0
 public Boolean IsNeedToShow(ObjectAbstractView view)
 {
     return(IsNeedToShowInternal(view));
     //return IsNeedToShowStack.GetOrAdd(view, IsNeedToShowInternal);
 }