Vb.net 缺少WP8.1动态创建的映像

Vb.net 缺少WP8.1动态创建的映像,vb.net,windows-phone-8,.net-4.5,dispatcher,Vb.net,Windows Phone 8,.net 4.5,Dispatcher,我正在开发一个Windows Phone 8.1应用程序,使用一个Hub控件动态显示类别(作为HubSection)和图像(包含在每个HubSection的StackPanel中) 该过程分两个阶段运行。第一部分从API下载XML并对其进行解析,以将类别及其图像存储到字典中。然后,代码在类别列表中循环,并调用Dispatcher,以使用占位符图像将HubSections添加到Hub中。所有这些都在后台任务中运行 Private Async Sub GetXML() For Each Ca

我正在开发一个Windows Phone 8.1应用程序,使用一个Hub控件动态显示类别(作为HubSection)和图像(包含在每个HubSection的StackPanel中)

该过程分两个阶段运行。第一部分从API下载XML并对其进行解析,以将类别及其图像存储到字典中。然后,代码在类别列表中循环,并调用Dispatcher,以使用占位符图像将HubSections添加到Hub中。所有这些都在后台任务中运行

Private Async Sub GetXML()
    For Each Category As String In MessageMgr.CategoryList.Keys

            Await Hub.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
                                                   Sub()
                                                       AddHubSection(Category, MessageMgr.CategoryList(Category), Hub)
                                                       RaiseEvent HubSectionAdded(Category, MessageMgr, Hub)

                                                   End Sub)
    Next
End Sub

Private Sub AddHubSection(Category As String, MessageList As List(Of MessageManager.Message), Hub As Windows.UI.Xaml.Controls.Hub)
    Dim HubSection As New Windows.UI.Xaml.Controls.HubSection

    Dim TemplateString As String = "<DataTemplate>"...."</DataTemplate>"

    HubSection.Header = Category
    HubSection.ContentTemplate = XamlReader.Load(TemplateString)
    Hub.Sections.Add(HubSection)
End Sub
我面临的问题是FindChildControl函数并不总是立即返回图像控件。我现在所做的是用一个简短的任务来结束一段时间。延迟和10秒后的超时退出。控件始终在1秒内可用

然而,我的问题是,为什么当我立即通过时,图像没有在中心中找到?我并不特别想在代码中花费一段时间来等待它变得可用

Private Sub OnHubSectionAdded(ByVal Category As String, ByVal MessageMgr As MessageManager, ByVal Hub As Hub)
    For Each Banner In MessageMgr.CategoryList(Category)
        Task.Run(Sub() GetImage(Banner, Hub))

    Next
End Sub

Private Async Sub GetImage(Banner As MessageManager.Message, Hub As Windows.UI.Xaml.Controls.Hub)
    Dim Declarations.....

    ''' Download image code goes here '''

            Await Hub.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
                                          Sub()
                                              imgBanner = FindChildControl(Of Windows.UI.Xaml.Controls.Image)(Hub, "img" & Banner.BannerID)

                                              If imgBanner IsNot Nothing Then
                                                  myBitmapImage = New BitmapImage
                                                  myBitmapImage.SetSource(RAS)
                                                  imgBanner.Source = myBitmapImage
                                              End If
                                          End Sub)

End Sub