sing System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Controls.Primitives;
using System.Collections.ObjectModel;
using System.Collections.Generic;
namespace MyLib.Extensions {
/// <summary>
/// Description of WpfExt.
/// </summary>
public static class WpfExt {
public static List < childItem > FindVisualChildren < childItem > ( this DependencyObject obj)
where childItem : DependencyObject {
List < childItem > children = new List < childItem > ();
for ( int i = 0 ; i < VisualTreeHelper.GetChildrenCount(obj); i ++ ) {
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem) {
children.Add(child as childItem);
} else {
childItem childOfChild = FindVisualChild < childItem > (child);
if (childOfChild != null ) {
children.Add(childOfChild as childItem);
}
}
}
return children;
}
public static childItem FindVisualChild < childItem > ( this DependencyObject obj)
where childItem : DependencyObject {
for ( int i = 0 ; i < VisualTreeHelper.GetChildrenCount(obj); i ++ ) {
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else {
childItem childOfChild = FindVisualChild < childItem > (child);
if (childOfChild != null )
return childOfChild;
}
}
return null ;
}
}
}
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows.Controls.Primitives;
using System.Collections.ObjectModel;
using System.Collections.Generic;
namespace MyLib.Extensions {
/// <summary>
/// Description of WpfExt.
/// </summary>
public static class WpfExt {
public static List < childItem > FindVisualChildren < childItem > ( this DependencyObject obj)
where childItem : DependencyObject {
List < childItem > children = new List < childItem > ();
for ( int i = 0 ; i < VisualTreeHelper.GetChildrenCount(obj); i ++ ) {
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem) {
children.Add(child as childItem);
} else {
childItem childOfChild = FindVisualChild < childItem > (child);
if (childOfChild != null ) {
children.Add(childOfChild as childItem);
}
}
}
return children;
}
public static childItem FindVisualChild < childItem > ( this DependencyObject obj)
where childItem : DependencyObject {
for ( int i = 0 ; i < VisualTreeHelper.GetChildrenCount(obj); i ++ ) {
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else {
childItem childOfChild = FindVisualChild < childItem > (child);
if (childOfChild != null )
return childOfChild;
}
}
return null ;
}
}
}