/// <summary> /// Implements <see cref="M:ESRI.ArcLogistics.App.Controls.EnumerateVisualChildrenRecursively"/> /// using an iterator block allowing the original method to perform /// eager validation of arguments. /// </summary> /// <param name="root">The <see cref="T:System.Windows.DependencyObject"/> /// to enumerate visual children for.</param> /// <returns>A collection of all visual children of the specified /// <see cref="T:System.Windows.DependencyObject"/>.</returns> private static IEnumerable<DependencyObject> _EnumerateVisualChildrenRecursively( DependencyObject root) { foreach (var child in root.EnumerateVisualChildren()) { yield return child; foreach (var item in _EnumerateVisualChildrenRecursively(child)) { yield return item; } } }