【发布时间】:2019-10-24 10:29:49
【问题描述】:
我想将一个值从 Mainpage 传递到 Page2。当我单击Button_Click 时,变量“t”被传递给 Page2。
但是我需要从代码中触发Button_Click 事件,但随后会引发“NullReferenceException”。
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
Button_Click(new object(), new RoutedEventArgs());
}
public void Button_Click(object sender, RoutedEventArgs e)
{
string t = "Test";
navigate_page2(t);
}
public void navigate_page2(string t)
{
this.Frame.Navigate(typeof(Page2), t);
}
}
Button_Click(new object(), new RoutedEventArgs()); 触发 Button_Click 事件来做事,除非调用“navigate_page2”。
直接点击和从代码中触发按钮有什么区别?我猜这是“新的 RoutedEventArgs”,但我不知道如何处理...谢谢您的回复!
【问题讨论】:
-
将
Button_Click(new object(), new RoutedEventArgs());替换为Button_Click(sender, e);将触发事件而不会获得NullReferenceException- 如果您遇到更多困难,请分享更多信息:) -
我的第一条评论不是更容易吗...?您提供的链接似乎使用了所有这些复杂的代码,尽管它可能要容易得多:) 不过我喜欢这篇文章!
-
另外,删除不必要的代码
this.InitializeComponent();,然后执行InitializeComponent();- 它占用空间,而且不需要:) -
@Momoro。当我像您所说的那样简单地替换时, sender 和 e “在当前上下文中不存在”。似乎它与 Button_Click 的参数不匹配 - 事件...
标签: c# uwp routed-events