C# 动态地将子项添加到WPF UserControl,并从WinForm处理其事件

C# 动态地将子项添加到WPF UserControl,并从WinForm处理其事件,c#,wpf,C#,Wpf,我有一个名为“xNavPanel”的简单WPF用户控件,其中包含一个面板。 我使用“ElementHost”将此控件添加到Winform中。 我有另一个名为“MainMenuButton”的WPF用户控件,它包含textblock 来自Winform;我在运行时在“xNavPanel”中动态添加了许多“MainMenuButton”。 我有一个方法可以循环数据表行 在每一行的“xNavPanel”中添加“MainMenuButton” 并将事件处理程序添加到每个“MainMenuButton”

我有一个名为“xNavPanel”的简单WPF用户控件,其中包含一个面板。 我使用“ElementHost”将此控件添加到Winform中。 我有另一个名为“MainMenuButton”的WPF用户控件,它包含textblock

来自Winform;我在运行时在“xNavPanel”中动态添加了许多“MainMenuButton”。 我有一个方法可以循环数据表行 在每一行的“xNavPanel”中添加“MainMenuButton” 并将事件处理程序添加到每个“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);
}
我发现了问题
此问题中的代码100%正常工作
问题在于此代码中未包含的其他内容