我有一个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
时,它会立即触发,而不会等待我使用数据网格的自定义控件。
答案 0 :(得分:2)
您需要有效地传递事件。
保存数据网格的Page
需要添加新事件;像OrdersLoaded
这样的东西。当datagrid完成加载fire事件时。然后,主窗口可以订阅该事件,从而告知订单何时加载。
public event Action OrdersLoaded;
private void dgOrders_Loaded(object sender, RoutedEventArgs e)
{
if (OrdersLoaded != null)
OrdersLoaded();
}