C# WPF查找父控件&查找子控件

// ------------------------------------------------------------------------------------
Button btn = sender as Button;
CalibrationKey samplePointXY = btn.DataContext as CalibrationKey;

//DataGridRow row = FindVisualParent(btn);
DataGrid row = FindVisualParent(btn);

// 辅助方法:查找可视树中的父控件
private static T FindVisualParent(DependencyObject child) where T : DependencyObject
{
DependencyObject parentObject = VisualTreeHelper.GetParent(child);
if (parentObject == null) return null;

T parent = parentObject as T;
if (parent != null)
return parent;
else
return FindVisualParent(parentObject);
}
// -------------------------------------------------------------------------------------------
int channelcolorIdx = 0;
for (int i = 0; i < MyChannelNumList.Items.Count; i++)
{
// 获取第一项
var firstItem = MyChannelNumList.Items[i];

// 如果ListBox的ItemTemplate中包含Button A1
// 可以通过VisualTreeHelper查找
var listBoxItem = MyChannelNumList.ItemContainerGenerator.ContainerFromItem(firstItem) as ListBoxItem;
if (listBoxItem != null)
{
// 查找ListBoxItem中的Button A1
var btn = FindVisualChild

posted @ 2026-04-14 17:48  nap117  阅读(20)  评论(0)    收藏  举报