private void documentTreeView_NodeCheckedChanged(object sender, TreeNodeCheckedEventArgs e) { RadTreeNode node = e.Node; if (node.Tag == null) { return; } if (node.Checked) { if (!selectedDocuments_ListControl.Items.Any(x => x.Text.Equals(node.FullPath))) { _selectedDocuments.Add((Document)node.Tag); RadListDataItem listItem = null; try { listItem = new RadListDataItem(node.FullPath); listItem.Image = node.Image; selectedDocuments_ListControl.Items.Add(listItem); } catch { listItem?.Dispose(); throw; } } } else { RadListDataItem item = selectedDocuments_ListControl.Items.FirstOrDefault(n => n.Text == node.FullPath); if (item != null) { _selectedDocuments.Remove((Document)node.Tag); selectedDocuments_ListControl.Items.Remove(item); } } OnSelectionChanged(); }