在MainWindow类中执行方法

时间:2012-11-13 14:49:11

标签: c# wpf events

我有一个WPF应用程序,我使用Frame来加载Page'。在Page我调用我的自定义控件<Controls:OrderDataGrid x:Name="cntrlOrderDataGrid" />。 在此控件上,当我导航到DataGrid内的Page时,我有Frame填充数据的内容。有时加载需要一段时间,我需要知道DataGrid何时完成加载,所以我设置了Loaded事件:

private void dgOrders_Loaded(object sender, RoutedEventArgs e)
{ }

但我无法弄清楚我是否可以通知MainWindow DataGrid已经结束加载。当我将Loaded事件设置为Frame时,它会立即触发,而不会等待我使用数据网格的自定义控件。

1 个答案:

答案 0 :(得分:2)

您需要有效地传递事件。

保存数据网格的Page需要添加新事件;像OrdersLoaded这样的东西。当datagrid完成加载fire事件时。然后,主窗口可以订阅该事件,从而告知订单何时加载。

public event Action OrdersLoaded;

private void dgOrders_Loaded(object sender, RoutedEventArgs e)
{
    if (OrdersLoaded != null)
        OrdersLoaded();
}