3
如何確定在哪個節點上單擊執行? silverlight工具包的Treeview。如何確定哪個節點被點擊。 Silverlight treeview
在的MouseRightButtonUp我需要得到節點:
私人無效treeView_MouseRightButtonUp(對象發件人,MouseButtonEventArgs E)
如何確定在哪個節點上單擊執行? silverlight工具包的Treeview。如何確定哪個節點被點擊。 Silverlight treeview
在的MouseRightButtonUp我需要得到節點:
私人無效treeView_MouseRightButtonUp(對象發件人,MouseButtonEventArgs E)
的MouseButtonEventArgs
具有OriginalSource
屬性表明生成事件的實際UIElement
。
爲了找出那個元素屬於哪個節點,你將需要遍歷可視樹來發現它。我用這個擴展方法,以協助是: -
public static IEnumerable<DependencyObject> Ancestors(this DependencyObject root)
{
DependencyObject current = VisualTreeHelper.GetParent(root);
while (current != null)
{
yield return current;
current = VisualTreeHelper.GetParent(current);
}
}
然後在MouseRightButtonUp
事件中,你可以使用此代碼找到項目: -
TreeViewItem node = ((DependencyObject)e.OriginalSource)
.Ancestors()
.OfType<TreeViewItem>()
.FirstOrDefault();
也許我失去了一些東西,但如果是第二段代碼中的名字「祖先」? – Telaclavo 2012-01-15 19:31:19
@Telaclavo:在應用程序的使用示例中找不到它。編輯。 – AnthonyWJones 2012-01-16 13:34:09