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