我正在开发 WPF 和 C# 应用程序,但在页面和窗口之间传递数据时遇到问题。
最好的方法是什么?
谢谢!
您可以使用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");
}
}
}
希望有帮助。
我最近遇到了这个问题,并且能够使用公共应用程序属性来解决。我不知道这是否是“最佳实践”,事实上我对此表示怀疑,但它可以解决问题。
//creating a new property
Application.Current.Properties["accessName"] = newPropertyValue;
//retrieving
RecievingWindowVariable = (castDataType)Application.Current.Properties["accessName"];