You can use the VisualTreeHelper:
private static IEnumerable<T> FindVisualChildren<T>(DependencyObject root) where T : DependencyObject
{
if (root != null)
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(root); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(root, i);
if (child is T) yield return (T)child;
foreach (T childOfChild in FindVisualChildren<T>(child))
yield return childOfChild;
}
}
use the following
var treeItems = FindVisualChildren<treeviewitem> (this),ToList();
treeItems.ForEach(I => i.IsExpanded = false);