我有一个名为“xNavPanel”的Simple WPF userControl包含一个面板。 我使用“ElementHost”将此控件添加到Winform中。 我有另一个名为“MainMenuButton”的WPF UserControl包含文本块。
来自Winform;我在运行时动态地在“xNavPanel”中添加了许多“MainMenuButton”。 我有循环DataTable行的方法 和foreach行将“MainMenuButton”添加到“xNavPanel”中 并为每个“MainMenuButton”添加一个事件处理程序。
问题是;控件不会调用处理程序!
public static void FillMenu(xNavPanel navPanel, DataTable Items)
{
navPanel.MainPanel.Children.Clear(); //MainPanel is Panel inside UserControl
MainMenuButton menuItem;
foreach (DataRow dr in Items.Rows)
{
menuItem = SetMenuItem(dr);
navPanel.MainPanel.Children.Add(menuItem);
}
}
static MainMenuButton SetMenuItem(DataRow dr)
{
MainMenuButton menuItem = new MainMenuButton();
menuItem.Name = "MI_" + dr["FormName"].ToString();
menuItem.MenuName.Text = dr["Name"].ToString(); //MenuName is TxBlock inside UserControl
menuItem.MouseUp += new System.Windows.Input.MouseButtonEventHandler(menuItem_MouseUp);
//menuItem.MouseUp += ((sender, e) => MessageBox.Show((sender as MainMenuButton).Name));
return menuItem;
}
static void menuItem_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
MessageBox.Show((sender as MainMenuButton).Name);
}
答案 0 :(得分:0)
我发现了问题 本课题中的代码100%正常工作 问题在于此代码中未包含的其他内容。