1
我對C#和CodedUI很新,所以請和我一起裸照!在C中遞歸地定位一個帶有InnerText的UIElement#
我有一個頁面上的許多HTMLDIV的,我試圖用
UIElement.getProperty("InnerText")
問題是我不知道的DIV將有多少孩子有多少水平向下找到一個特定元素將會。所以我雖然遞歸會適用於這種情況,而不是嵌套的FOREACH語句。然而,因爲我的DIVS沒有填充.NAME屬性,並且.GetType
始終是「HTMLDIV」,所以我不知道如何訪問子元素的.Innertext
。我打算用這樣的方法:
ControlTypeIWantToFind result =
FindVisualChild<ControlTypeIWantToFind>(myPropertyInspectorView);
public static T FindVisualChild<T>(DependencyObject depObj, string strMyInnerText) where T : DependencyObject
{
if (depObj != null)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(depObj, i);
if (child != null && child is T)
{
return (T)child;
}
T childItem = FindVisualChild<T>(child);
if (childItem != null) return childItem;
}
}
return null;
}
但我想我需要的東西是這樣的:
if (child != null && child.innerText == strMyInnerText)
我希望所有有道理......有人能夠幫助!