繁体   English   中英

如何在WPF中将值从一个用户控件传递到另一个。

[英]How to Pass a value from One User Control to another in WPF.

我正在将项目的GUI开发为WPF中的UserControl。 我正在尝试在另一个WPF窗口中使用它。 它工作正常,但真正的问题是将特定值从一个用户控件传递给另一个用户控件。

eg: 
UserControl1 is displayed within WPFWindow1 
UserControl2 is displayed within WPFWindow2 

MainWindow opens Window1 , Window1 opens Window 2 . 

因此,要求是在Window2中,当用户单击按钮时,应将一个值传递给Window1。

这是我做的一个示例项目,目的是使它更好地理解(以防万一): http : //goo.gl/h0zpL7

在这里, DelegatesEvents是我可以建议的最佳实践。 在Window2中创建一个DelegateEvent ,如下所示

public partial class Window2 : Window
{
    public delegate void MyDelegate(object value);
    public event MyDelegate MyCustomEvent;

    public Window2()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        MyCustomEvent(100);
    }
}

如下所示在Window1中订阅MyCustomEvent

public partial class Window1 : Window
{
    public Window1()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Window2 wnd = new Window2();
        wnd.MyCustomEvent += wnd_MyCustomEvent;
        wnd.Show();
    }

    void wnd_MyCustomEvent(object value)
    {
        MessageBox.Show(value.ToString());
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM