2009-07-13 11 views
2

TreeViewを使用して、複雑なデータ構造をより簡単にナビゲートすることができます。私は自分のアプリケーションに機能を追加しようとしているので、ユーザーはツールバーのボタンをクリックして新しいアイテムをデータストアに追加できます。この新しいアイテムには3つのレベルがあり、それぞれに1つのアイテムがあります。最も低いレベルのアイテムを選択したいと思います。WPFの新しく追加された項目に選択を設定TreeView

データを追加することは問題ありません。具体的には、TreeViewにバインドされた新しいアイテムをコレクションに追加するだけです。私はTreeViewを手で見てアイテムを調べることができるので、追加作業が分かっています。ここでは、プログラムで新しい項目の選択を設定したいと思います。したがって、ユーザーは要素のデフォルト設定をすぐに変更することができます。

私はいくつかのテストを行ってきたと私は選択を設定することはようなもので行われることを発見した:私は私のアドオン方式の直後にこのコードを追加しようとしました

var obj = TreeView.ItemContainerGenerator 
       .ContainerFromItem(selectedObject) as TreeViewItem; 
obj.IsSelected = true; 

。追加関数は新しいオブジェクトを返し、selectedObjectに配置します。 Addメソッドは、ObservableCollectionにaを追加し、適切なイベントを発生させます。

しかし、objは追加直後に常にnullです。

LayoutUpdatedイベントで選択範囲を設定しようとしましたが、この場合、前のコードの変数objの変数は常にnullです。

ここに何か不足している可能性があります。バインドされたコレクションに新しいアイテムを追加し、そのアイテムをTreeViewで選択する方法について誰かが考えていますか?

答えて

2

WPFでtreeviewを使用している場合は、Josh Smithのthis articleを読んでみてください。彼は、MVVMパターンを使用して、あなたのニーズに容易に適応できるIsSelectedプロパティを使用する方法を示します。

関連する問題