void HandleServerRemoved(object sender, ServerEventArgs e) { Application.Instance.AsyncInvoke(delegate { UnRegister(e.Server); servers.Remove(e.Server); Update(true); OnChannelChanged(EventArgs.Empty); }); }
private void resyncDatabases() { try { ignoreSelectionChanged = true; //SuspendLayout(); if (openedDatabases == null) { return; } //remove closed databases foreach (var child in tree.OfType <OpenedDatabaseTreeItem>() .Where(child => !openedDatabases.Contains(child.Database)) .ToArray()) { tree.Remove(child); } //add newly opened databases var children = tree.OfType <OpenedDatabaseTreeItem>().ToArray(); foreach (var item in openedDatabases .Where(db => children.All(child => child.Database != db)) .Select(db => new OpenedDatabaseTreeItem(parentViewModel, this, db) { Expanded = true })) { tree.Add(item); RefreshItem(item); } var selectedItem = parentViewModel.SelectedDatabase; SelectedItem = tree .OfType <OpenedDatabaseTreeItem>() .FirstOrDefault(item => string.Equals(item.Database.FilePath, selectedItem?.FilePath)); } catch (Exception error) { parentViewModel.Log.Error(error); MessageBox.Show(error.Message, "Opened Database Resync Error", MessageBoxButtons.OK, MessageBoxType.Error); } finally { ignoreSelectionChanged = false; //ResumeLayout(); } }
bool RemoveItem(TreeItemCollection items, string key) { foreach (var item in items.OfType <TreeItem>()) { if (item.Key == key) { items.Remove(item); return(true); } if (RemoveItem(item.Children, key)) { return(true); } } return(false); }
bool RemoveItem (TreeItemCollection items, string key) { foreach (var item in items.OfType<TreeItem>()) { if (item.Key == key) { items.Remove (item); return true; } if (RemoveItem (item.Children, key)) return true; } return false; }
protected virtual void OnDeviceRemoved(object sender, DeviceRepositoryEventArgs args) { devices.Remove(args.Device); treeView.RefreshData(); }