protected override void LoadChildren()
 {
     if (IsLoaded) return;
     foreach (var clientContext in _clientContexts)
     {
         var viewModel = new SPSiteViewModel(clientContext.ClientSite, this);
         Children.Add(viewModel);
     }
     base.LoadChildren();
 }
 public void Add(SPClientContext clientContext)
 {
     var viewModel = new SPSiteViewModel(clientContext.ClientSite, this);
     Children.Add(viewModel);
     viewModel.IsExpanded = true;
     viewModel.Commands.Add(new CommandEntity
     {
         Name = "Close",
         Command = new RelayCommand<object>(arg =>
         {
             clientContext.Dispose();
             _clientContexts.Remove(clientContext);
             Children.Remove(viewModel);
         }, null)
     });
 }