/// <summary> /// 根据控件的值获取到对应的Item /// </summary> /// <typeparam name="T">最终获取到Item的具体类型</typeparam> /// <param name="element">The element.</param> /// <param name="content">The content.</param> /// <returns></returns> public static T FindItemByContent<T>(this ItemsControl element, object content) where T : ItemsControl { ItemCollection items = element.Items; ItemContainerGenerator itemContainerGenerator = element.ItemContainerGenerator; if (items == null) return null; var item = (T)itemContainerGenerator.ContainerFromItem(content); if (item != null) return item; foreach (var i in items) { if (i.Equals(content)) continue; item = (T)itemContainerGenerator.ContainerFromItem(i); if (item == null) continue; item = FindItemByContent<T>(item, content);//递归 if (item != null) return item; } return null; }