在datagrid的 LoadingRow事件中查找模版中的控件 if (datagrid.Columns[0].GetCellContent(e.Row).FindName("textbox") is TextBox { TextBox text = datagrid.Columns[0].GetCellContent(e.Row).FindName("textbox") as TextBox; 然后添加事件可以了,不知道你是不是这个意思,希望对你有用 }
在主窗体 Loaded事件 中查找并实例化此控件,没实例化你打算怎么查找?你控件存在那里?
多谢,不是这情况, 是在一个 .xaml主窗体中的一个用户定义控件
主窗体的Loaded事件: private void UserControl_Loaded(object sender, RoutedEventArgs e) { TreeMarketPriceControl treeExitMarketPrice1 = FindVisualChild<TreeMarketPriceControl>(this.TabTree); if (treeExitMarketPrice1 != null) { treeExitMarketPrice1.ExistMarketList += new TreeMarketPriceControl.OnExistMarketList(distributeMsg_DisRegExistMarketPrice); } } 查找用的是一个方法,如下,假如要找的用户控件是TreeMarketPriceControl,引用方法: TreeMarketPriceControl treeExitMarketPrice1 = FindVisualChild<TreeMarketPriceControl>(this.TabTree ); this.TabTree 是主窗体中包含此控件的一个控件,注意有时可以找到控件并注册, private childItem FindVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject { for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++) { DependencyObject child = VisualTreeHelper.GetChild(obj, i); if (child != null && child is childItem) return (childItem)child; else { childItem childOfChild = FindVisualChild<childItem>(child); if (childOfChild != null) return childOfChild; } } return null; }
if (datagrid.Columns[0].GetCellContent(e.Row).FindName("textbox") is TextBox
{
TextBox text = datagrid.Columns[0].GetCellContent(e.Row).FindName("textbox") as TextBox;
然后添加事件可以了,不知道你是不是这个意思,希望对你有用
}
多谢,不是这情况,
是在一个 .xaml主窗体中的一个用户定义控件
主窗体的Loaded事件:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
TreeMarketPriceControl treeExitMarketPrice1 = FindVisualChild<TreeMarketPriceControl>(this.TabTree);
if (treeExitMarketPrice1 != null)
{
treeExitMarketPrice1.ExistMarketList += new TreeMarketPriceControl.OnExistMarketList(distributeMsg_DisRegExistMarketPrice);
}
}
查找用的是一个方法,如下,假如要找的用户控件是TreeMarketPriceControl,引用方法:
TreeMarketPriceControl treeExitMarketPrice1 = FindVisualChild<TreeMarketPriceControl>(this.TabTree ); this.TabTree 是主窗体中包含此控件的一个控件,注意有时可以找到控件并注册, private childItem FindVisualChild<childItem>(DependencyObject obj)
where childItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is childItem)
return (childItem)child;
else
{
childItem childOfChild = FindVisualChild<childItem>(child);
if (childOfChild != null)
return childOfChild;
}
}
return null;
}