public PropertyIterator(
     IExpressionEvaluatorProvider exparessionEvaluatorProvider,
     IPropertyVisitor propertyVisitor,
     ISearchStatus searchStatus) : this(exparessionEvaluatorProvider, propertyVisitor, 50, searchStatus)
 {
     this._exparessionEvaluatorProvider = exparessionEvaluatorProvider;
 }
 public PropertyIterator(
     IExpressionEvaluatorProvider exparessionEvaluatorProvider,
     IPropertyVisitor propertyVisitor,
     int maxDepth,
     ISearchStatus searchStatus)
 {
     _exparessionEvaluatorProvider = exparessionEvaluatorProvider;
     _propertyVisitor = propertyVisitor;
     _searchStatus    = searchStatus;
     MaxDepth         = maxDepth;
 }
        public ExpressionEvaluatorViewModel(IVsEnvironmentEvents vsEvents,
                                            ISearchStatus searchStatus,
                                            IExpressionEvaluatorProvider expressionEvaluatorProvider,
                                            ITaskSchedulerProvider taskSchedulerProvider)
        {
            _visibleProperties.CollectionChanged += visibleProperties_CollectionChanged;
            System.Windows.Data.BindingOperations.EnableCollectionSynchronization(_visibleProperties, _visiblePropertiesLock);
            _searchStatus = searchStatus;
            _searchStatus.StatusUpdated  = (s) => SearchingReportText = s;
            _expressionEvaluatorProvider = expressionEvaluatorProvider;
            _taskSchedulerProvider       = taskSchedulerProvider;

            vsEvents.EvaluatorBecomeAvailable   += (a, b) => { IsEnabled = true; };
            vsEvents.EvaluatorBecomeUnAvailable += VsEvents_EvaluatorBecomeUnAvailable;
        }