Winforms主机WPF控制事件

Winforms主机WPF控制事件,wpf,winforms,events,elementhost,Wpf,Winforms,Events,Elementhost,我正试图在我的winform上托管一个wpf控件(gridview) 我正在使用elementHost在winform上创建wpf控件 每当我想向wpf控件添加行时,如何创建事件 将gridview包装在usercontrol中,并在usercontrol中处理事件。请注意,当您托管wpf控件时,某些事件将不会被调用。对我有效的解决方案:在加载和elementhost获得焦点时,将焦点设置为usercontrol,以便在Winforms中订阅wpf控件的事件与其他事件相同。只需获取WPF控件实例

我正试图在我的winform上托管一个wpf控件(gridview)

我正在使用elementHost在winform上创建wpf控件


每当我想向wpf控件添加行时,如何创建事件

将gridview包装在usercontrol中,并在usercontrol中处理事件。请注意,当您托管wpf控件时,某些事件将不会被调用。对我有效的解决方案:在加载和elementhost获得焦点时,将焦点设置为usercontrol,以便在Winforms中订阅wpf控件的事件与其他事件相同。只需获取WPF控件实例并将代码用作:

wpfbutton1.Click += new RoutedEventHandler(wpfbutton1_Click);     

void wpfbutton1_Click(object sender, RoutedEventArgs e)
{
   throw new NotImplementedException();
}
示例代码:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        ElementHost host = new ElementHost() { Dock = DockStyle.Fill };
        this.Controls.Add(host);

        System.Windows.Controls.Button wpfButton = 
            new System.Windows.Controls.Button() { Content = "WPF Button" };
        host.Child = wpfButton;

        wpfButton.Click += new         System.Windows.RoutedEventHandler(wpfButton_Click);
    }

    void wpfButton_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        MessageBox.Show("Button is clicked");
    }
}

到目前为止,您是否已经尝试过一些代码?