예제 #1
0
        public StashListTeamExplorerNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider)
        {
            _serviceProvider = serviceProvider;
            _teamExplorer    = _serviceProvider.GetService(typeof(ITeamExplorer)) as ITeamExplorer;
            _image           = Resources.TeamExplorerIcon;
            _gitService      = (IGitExt)_serviceProvider.GetService(typeof(IGitExt));

            IsVisible = _gitService.AnyActiveRepository();
            _gitService.PropertyChanged += GitServicePropertyChanged;
        }
        private void GitServicePropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
        {
            IsVisible = propertyChangedEventArgs.PropertyName == nameof(_gitService.ActiveRepositories) &&
                        _gitService.AnyActiveRepository();

            if (IsVisible)
            {
                Dispatcher.CurrentDispatcher.Invoke(() =>
                {
                    if (_teamExplorer.CurrentPage.GetId() == new Guid(Constants.HomePageId))
                    {
                        _teamExplorer.CurrentPage.Refresh();
                    }
                });
            }
        }