protected void PropogateToLeaves(bool isChecked) { if (fCheckBox.IsChecked != isChecked) { fPropogating = true; fCheckBox.IsChecked = isChecked; foreach (object item in Items) { FolderTreeViewItem tvm = item as FolderTreeViewItem; if (tvm != null && tvm.IsChecked != isChecked) { tvm.PropogateToLeaves(isChecked); } } fPropogating = false; } }