private void Image_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (SelectedItem is null) { return; } RemoveFile?.Invoke(this, new FileSelectedEventArgs(SelectedItem.Value.ID)); }
public void Managing_list_Files(TreeNode node, bool ClsChildNodes) { //должны быть ключи - именами, а значения - путями :) if (node.Checked) { if (!list_files.ContainsKey(node.Tag)) { list_files.Add(node.Tag, node.Tag); if (AddFile != null) { AddFile.Invoke(node.Tag); } } Hashtable to_remove = new Hashtable(20); foreach (object path in list_files.Keys) { string input = string.Empty; string pattern = string.Empty; if (path.ToString().Length > node.Tag.ToString().Length) { input = path.ToString(); pattern = node.Tag.ToString(); } else { input = node.Tag.ToString(); pattern = path.ToString(); } bool cmp = input.Contains(pattern); //если выбранная папка ближе к корню, чем ранее выбранная if ((cmp) && //так вот если она есть (path.ToString() != node.Tag.ToString()) && //и не равна самой себе (path.ToString().Split(Convert.ToChar("\\")).Length != node.Tag.ToString().Split(Convert.ToChar("\\")).Length) //и их уровни вложенности разные ) { if (!to_remove.ContainsKey((object)input)) { to_remove.Add((object)input, (object)input); } if (RemoveFile != null) { RemoveFile.Invoke(path); } } } foreach (object path in to_remove.Keys) { list_files.Remove((object)path); } if (ClsChildNodes) { node.Nodes.Clear(); } //MessageBox.Show(list_files.Count.ToString() + "/" + to_remove.Count.ToString()); } else { list_files.Remove(node.Tag); if (RemoveFile != null) { RemoveFile.Invoke(node.Tag); } } }
private void _removeItem_Click(object sender, RoutedEventArgs e) { RemoveFile?.Invoke(this, EventArgs.Empty); }