程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 從一個父級控件找到某一個子級控件,級控件某一個子

從一個父級控件找到某一個子級控件,級控件某一個子

編輯:C#入門知識

從一個父級控件找到某一個子級控件,級控件某一個子


/// <summary>
/// 刷新圖層列表,添加素材子元素時間控件TimeRange
/// </summary>
public void RefreshListView()
{
for (int i = 0; i < lstCoverage.Items.Count; i++)      //lstCoverage是一個ListView 控件
{
UIElement u = lstCoverage.ItemContainerGenerator.ContainerFromIndex(i) as UIElement;

if (u == null)
{
Debug.WriteLine("獲取的UIElement為空!!……");
continue;
}

clsCoverageInfo tmCvr = lstCoverage.Items[i] as clsCoverageInfo;      //clsCoverageInfo綁定數據源
List<MaterageTiemList> btnList = FindVisualChild<MaterageTiemList>(u);
if(btnList.Count == 0)
{
Debug.WriteLine("查找失敗……");
}
else
{
btnList[0].SetView(tmCvr.m_strCoverageMeterals);
Debug.WriteLine("查找成功……");
}

}
}

/// <summary>
/// 利用visualtreehelper尋找對象的子級對象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <returns></returns>
List<T> FindVisualChild<T>(DependencyObject obj) where T : DependencyObject
{
try
{
List<T> TList = new List<T> { };
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is T)
{
TList.Add((T)child);
}
else
{
List<T> childOfChildren = FindVisualChild<T>(child);
if (childOfChildren != null)
{
TList.AddRange(childOfChildren);
}
}
}
return TList;
}
catch (Exception ee)
{
// MessageBox.Show(ee.Message);
return null;
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved