2011-06-18 24 views
2

私は現在、C#でwpfプロジェクトを作成中です。TreeViewで子ノードのSelectedIndexを取得する

親ノードに子ノードがあるツリービューを作成しました。

ユーザーがクリックした子ノードのインデックスを取得する方法があるかどうかは疑問でした。

int val =TreeView.SelectedItemProperty.GlobalIndex;

fileInput.IndexOf(treeView1.SelectedItem);

しかし、彼らはいけないが、動作するようです:私のようなさまざまな方法を試してみました

(Simmilarに ".SelectedIndex" コンボボックスを使用して)。

ご意見やご感想をいただければ幸いです。

おかげ

+1

ソフトウェアエンジニアリングの中核となるツリーです。ツリー内のノードにはインデックスがありません。配列ではありません。実際の木に枝を可視化してみてください。ある枝から別の枝に数回ホッピングするだけで、葉に到達することができます。 –

+0

ああちょっと意味があります。私が提案したマイクロプロセッサのコードで作業しようとしていますが、.Nodesを使用することはオプションであり、イベントの作成方法がわかりません:TreeViewEventArgs – Johnston

答えて

1

あなたはSelectedItemのインデックスを取得するには、ツリー・ノードをループする必要があります。あなたはOnItemSelected event.forを使用してそれを行うことができます。

Int32 selectedNodeIndex=-1; 
private void TreeView1_OnItemSelected(Object sender,RoutedEventArgs e) 
{ 
     Int32 index=0; 
     foreach(var _item in TreeView1.Items) 
     { 
     if(_item==TreeView1.SelectedItem) 
     { 
       selectedNodeIndex = index; 
       break; 
     } 
      index++; 
     }  
} 
+0

TreeViewEventArgs eを作成するにはどうすればいいですか?treeView1_SelectedItemChangeイベントの中に入りますか? – Johnston

+0

また、treeView.Nodesを実行するとエラーが表示されます(.Nodes部分のように表示されません) – Johnston

+0

エラーの詳細は何ですか? –

0

This postあなたは私が考える必要が正確に何を説明します。 SelectedNodeChangedイベントの処理について、また現在選択されているノードがクリックされたときに発生するイベントのコードのカスタムコードについては、SelectedNodeChangedが起動しないため(選択されたノードは実際には変更されません)。がんばろう!

関連する問題