/// <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;
                }
            }
        }