我正在开发一个WPF和C#应用程序,我在页面和窗口之间传递数据时遇到问题。
最好的方法是什么?
谢谢!
答案 0 :(得分:1)
您可以使用delegate
事件执行此操作。
例如,在您的MainWindow中:
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Page1.onNameSend += Page1_onNameSend;
}
void Page1_onNameSend(string Name)
{
Console.WriteLine(Name);
}
}
}
然后在你的Page1:
namespace WpfApplication1
{
public partial class Page1 : Page
{
public delegate void SendName(string Name);
public static event SendName onNameSend;
public Page1()
{
InitializeComponent();
}
private void SendButton(object sender, RoutedEventArgs e)
{
onNameSend("Name to Send");
}
}
}
希望有所帮助。
答案 1 :(得分:-2)
我最近有这个问题,并且能够使用公共应用程序属性解决。我不知道这是否是“最佳实践”,事实上我对此表示怀疑,但它可以解决问题。
//creating a new property
Application.Current.Properties["accessName"] = newPropertyValue;
//retrieving
RecievingWindowVariable = (castDataType)Application.Current.Properties["accessName"];