このツリービューには RadTreeView と多くのノードがあります。私がやりたいことは、ノードがクリックされたときに、一番上の親ノードを取得したいということです。これどうやってするの?構造は次のようになります。
- 親
- 子
3.子の子
4.選択したノード
3.子の子
3.子の子
- 子
「4.選択したノード」を選択すると、メソッドを3回呼び出すのではなく、最上位の親ノードを取得できるようにしたい。
このツリービューには RadTreeView と多くのノードがあります。私がやりたいことは、ノードがクリックされたときに、一番上の親ノードを取得したいということです。これどうやってするの?構造は次のようになります。
「4.選択したノード」を選択すると、メソッドを3回呼び出すのではなく、最上位の親ノードを取得できるようにしたい。
私は現在、Rad Controls を使用して巨大なプロジェクトに取り組んでいるため、このメソッドを作成しました。
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");
}
}
}
コーディングをあきらめないでください。
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;
}
主に、このイベント全体の最後の行が必要だと思います。これに関する詳細については、こちらを参照してください。ただし、これは radtreeview の WPF バージョン用です。