2017-09-01 1 views
0

ツリービューでTreeViewItemの選択に問題があります。私のツリービューで項目を選択すると、次のコードはnullを返します。TreeViewItemはnullを選択できません

どうすればいいですか?

TreeViewItem item = e.OriginalSource as TreeViewItem; 

You can see in this picture that when I debug it tells me the Item is null

Here you can see what the e.originalSource holds

+1

'e.OriginalSource'は' TreeViewItem'ではありません。デバッグ時に 'e.OriginalSource'の型をチェックします。それはおそらくこの問題を解決するのに役立ちます。 –

+0

TreeViewItemにキャストしようとする前に、OriginalSourceには何がありますか? –

+0

@ QualityCatalyst e.OriginalSourceは、私が見る限り、RouteEventArgsのオブジェクトです。しかし、私はそれを上にマウスを移動するとTreeViewと言う。いくつかのものを含むTreeviewオブジェクト。私は別の画像でオペアンプを更新します。 –

答えて

0

e.Sourcee.OriginalSourceTreeViewないTreeViewItemが選択を指します。 e.OriginalSourceTreeViewで、最新の画像を1として

TreeViewItem item = e.OldValue as TreeViewItem; 
+0

答えに感謝しますが、そのアプローチで私にとってはまだnullです。 –

+0

(TreeViewItem)e.NewValueは正常に動作します – Abhay

+0

@Abhay実際にはありません。例外が生成されます。 –

1

:以前に選択した項目を取得するために

TreeViewItem item = e.NewValue as TreeViewItem; 

またはこの:

は、選択した項目を取得するために、これを試してみてください。あなたはこのようe.OriginalSourceを唱えたとき:

TreeViewItem item = e.OriginalSource as TreeViewItem; 

... itemは常にnullになります。これは、あなたのタイプキャストがe.OriginalSourceをあなたの希望するタイプに変換できないためです。代わりに、あなたの場合、このハードキャスト:

​​

あなたは理由を説明するCastExceptionになるだろう。

だから何あなたが行うようになったことは、このように正しい型にキャストすることです:

TreeViewItem tree = e.OriginalSource as TreeView; // I am a tree view :-) 

...そしてtree.Itemsから必要な項目を選択します。

+0

ありがとう、これは私のために働く。私ができると思っていたものが、今のところうまくいきませんでした。 –

関連する問題