我正在将项目的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
这里Delegates
和Events
是我可以建议的最佳实践。在Window2中创建一个Delegate
and Event
,如下所示
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);
}
}
MyCustomEvent
如下所示在Window1中订阅
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());
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句