2010-12-30 13 views
0

私はこのツリービューにRadTreeViewと多くのノードを持っています。私がしたいことは、ノードがクリックされたときに、一番上の親ノードを取得したいということです。これどうやってするの?構造は次のようである:RadTreeViewで選択したノードの親ノードを取得していますか?


    1. 子供
      3.Childの子
      4.selectedノード
      3.Childの子
      3.Childの子

私が選択したとき"4.selected node"は、メソッドを3回呼び出すことでトップ親ノードを取得できないようにしたいと考えています。

答えて

0
private void radTreeView_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangedEventArgs e) 
{ 
    // Get a reference to the treeview 
    Telerik.Windows.Controls.RadTreeView treeView = sender as Telerik.Windows.Controls.RadTreeView; 
    // Get the currently selected items 
    ObservableCollection<Object> selectedItems = treeView.SelectedItems; 
    RadTreeViewItem item = selectedItems[ 0 ] as RadTreeViewItem; 
    // Get the previous item and the previous sibling item 
    RadTreeViewItem previousItem = item.PreviousItem; 
    RadTreeViewItem previousSiblingItem = item.PreviousSiblingItem; 

    // Get the next item and the next sibling item 
    RadTreeViewItem nextItem = item.NextItem; 
    RadTreeViewItem nextSiblingItem = item.NextSiblingItem; 

    // Get the parent item and the root item 
    RadTreeViewItem parentItem = item.ParentItem; 
    RadTreeViewItem rootItem = item.RootItem; 
} 

主にこのイベント全体の最後の行は、あなたが、私はこの詳細についてはhereを見つけることができ、数える必要なものだろう。しかし、これはWPFバージョンのradtreeview用です。イムは今ラッド持つ巨大なプロジェクトに取り組んとして私は、あなたのため、この方法を書いた

0

コントロール:

public void FindFather(RadTreeNode n) 
     { 

      foreach (RadTreeNode node in RadTreeView1.GetAllNodes()) 
      { 
       if (node.Level == 0 && !node.GetAllNodes().Contains(node)) 
       { 
        //this is the node that your looking for 
        //do something with it 
        Console.Write("this is the Top Parent"); 
       } 
      } 


     } 

0

@King A.Majidをコーディングする際に決してあきらめない、uはそれを仲間が好き願っています私はあなたの論理が正しいとは思わない。パラメータ "RadTreeNode n"はどうですか?

私の方法は、以下のようにただ単純です:あなたはそれが最高のレベルではないことを確認する(上の親を見つけることである)ノードを確認する必要があります

public RadTreeNode CwGetTreeNodeTopParent(RadTreeNode nodeToFindTopParent) 
      { 
      var parentNode = nodeToFindTopParent.ParentNode; 
      if (parentNode.Level == 0) 
       return parentNode; 
      parentNode = CwGetTreeNodeTopParent(parentNode); 
      return parentNode; 
      } 

Egは、私たちはselectedNodeのためのトップの親を見つけたい:

if(selectedNode.Level != 0) 
{ 
var topParent = CwGetTreeNodeTopParent(selectedNode); 
//To do something here. 
} 
関連する問題