.Where
TreeView.ItemsコレクションでExtensionMethodを使用して、必要なものを検索できます。
WPFにはTreeNodeはもうありません。代わりに、TreeViewにはTreeViewItemsがあり、ListViewにはListViewItemsがあります。したがって、これらの場合に使用する必要があるのはTreeViewItemです。(TreeViewには好きなものを追加できますが、それがラップされます。)
FindNameは、何を検索するかわからないため、オブジェクトを返します。期待どおりのオブジェクトにキャストする必要があります。しかし、それはあなたが使いたい振る舞いです。また、名前の付いた要素はXAMLで作成された場合は自動的に登録されますが、C#/VBでアイテムを作成してUIに追加した場合はそうではありません。FindName()でアクセスできるようにするには、名前を「登録」する必要があります。
これは、TreeViewItemを示し、FindNameを介してTreeViewの要素にアクセスする小さな例です。
TreeView tree = new TreeView() { Name = "tree" };
uiDockPanel.Children.Add(tree);
var item1 = new TreeViewItem() { Header = "Item 1", Name = "Item1" };
tree.Items.Add(item1);
item1.RegisterName("Item1", item1);
var item2 = new TreeViewItem() { Header = "Item 2", Name = "Item2" };
tree.Items.Add(item2);
item1.RegisterName("Item2", item2);
var item3 = new TreeViewItem() { Header = "Item 3", Name = "Item3" ;
tree.Items.Add(item3);
item1.RegisterName("Item3", item3);
var i2 = tree.FindName("Item2") as TreeViewItem;
var subitem = new TreeViewItem() { Header = "SubItem 1"};
i2.Items.Add(subitem);