2011-02-01 84 views

回答

0

您可以使用this code並將其更改爲匹配類型而不是名稱。

+0

baalazamon的回答是好。 – 2011-02-01 20:46:17

1

事情是這樣的:

public static IEnumerable<T> FindDescendants<T>(DependencyObject obj, Predicate<T> condition) where T : DependencyObject 
{ 
    List<T> result = new List<T>(); 

    for (var i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) 
    { 
     var child = VisualTreeHelper.GetChild(obj, i); 

     var candidate = child as T; 
     if (candidate != null) 
     { 
      if (condition(candidate)) 
      { 
       result.Add(candidate); 
      } 
     } 

     foreach (var desc in FindDescendants(child, condition)) 
     { 
      result.Add(desc); 
     } 
    } 

    return result; 
} 

而且找到的所有文本框的標籤項的方法調用的情況下,看起來就像這樣:

var allTextBoxes = FindDescendants<TextBox>(myTabItem, e => true); 
相關問題