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();
        }