document.cookie.split('; ').reduce((prev, current) => {
const [name, value] = current.split('=');
prev[name] = value;
return prev
}, {});
item.MouseDoubleClick + = TreeViewItem_MouseDoubleClick; // Вот проблема
blockquote>Вы не получаете события для элементов даты, потому что вы не подписываетесь на эти элементы. Только узлы верхнего уровня присоединяют событие. Вы захотите подписаться на событие для дочерних элементов
Попробуйте вместо этого:
// 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()); }
Вы можете получить ссылку на родителя 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);
}