Как добавить событие MouseDoubleClick на C # в TreeViewItem

Самый короткий путь

 document.cookie.split('; ').reduce((prev, current) => {
    const [name, value] = current.split('=');
    prev[name] = value;
    return prev
  }, {});
0
задан Josete Manu 18 March 2019 в 18:26
поделиться

2 ответа

item.MouseDoubleClick + = TreeViewItem_MouseDoubleClick; // Вот проблема

Вы не получаете события для элементов даты, потому что вы не подписываетесь на эти элементы. Только узлы верхнего уровня присоединяют событие. Вы захотите подписаться на событие для дочерних элементов

Попробуйте вместо этого:

// Adding new client to TreeView
TreeViewItem item = new TreeViewItem();
item.Header = entry.Key;
foreach (var date in entry.Value.ToArray())
{
    var child = new TreeViewItem();
    child.Header = date;
    child.MouseDoubleClick += TreeViewItem_MouseDoubleClick; // Only subscribe to the child
    item.Items.Add(child);
}
try
{
    Arbol_Clientes.Items.Add(item);
}
catch (Exception error)
{
    Console.WriteLine("ERROR: " + error.ToString());
}
0
ответ дан Shawn Kendrot 18 March 2019 в 18:26
поделиться

Вы можете получить ссылку на родителя TreeViewItem элемента, по которому щелкнули (e.OriginalSource), используя класс VisualTreeHelper:

private void TreeViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    var hijo = FindParent<TreeViewItem>(e.OriginalSource as DependencyObject);
    //...

}

private static T FindParent<T>(DependencyObject dependencyObject) where T : DependencyObject
{
    var parent = VisualTreeHelper.GetParent(dependencyObject);

    if (parent == null) return null;

    var parentT = parent as T;
    return parentT ?? FindParent<T>(parent);
}
0
ответ дан mm8 18 March 2019 в 18:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: