我有一个功能可以更新我的 UI
public void Checking()
{
// Do Something
}
我想在打开程序时调用这些函数:我相信我应该在 main 中调用它:
public MainWindow()
{
InitializeComponent();
Checking();
}
但是在这里我遇到了一个错误:
调用的目标已引发异常。
PS:我正在使用 WPF ......有什么解决方案吗?
在您的构造函数中设置 Windows Loaded 事件并从那里调用您的 Checking() 方法。UI 尚未准备好在构造函数中进行交互,直到 XAML 完全加载。WPF 有一个事件让您知道这已经发生(Loaded 事件)。
public MainWindow()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Checking();
}
如果您仍然遇到错误,那么您将需要查看您的内部异常,应该告诉您是什么导致了错误。您还可以单步执行 Checking() 方法以查看错误发生在哪一行。
[编辑] 以下是有关 Loaded 事件和 WPF 页面生命周期中事件顺序的一些附加资源:
您可以按照您使用的方式使用该功能。但是 Checking() 中的某些内容可能需要加载您的面板(或其他内容)。
您可以创建一个在面板加载后触发的事件处理程序。然后你可以从那里调用你的 checks() 函数。
<StackPanel Loaded="myStackPanelLoaded" />
同样的事情发生在我身上。
在 WPF 中,当Exception
表单的构造函数中发生此消息时,将引发此消息。所以尝试Checking()
在. 通过这种方式,您将看到您的程序中有哪些类型。FormLoad
MainForm
Exception