J'ai une application SL qui lit certaines données de la base de données, ce que je fais à travers un service WCF. J'avais des problèmes de retard en raison de cet accès, alors je l'ai résolu en chargeant toutes les données dans un dictionnaire de mon application. Maintenant, je veux m'assurer que l'application ne sera affichée qu'après avoir chargé toutes ces informations, comment puis-je faire cela? Je pensais que mettre juste mon InitializeComponents après le chargement de données serait suffisant, mais ce n'est pas le cas. Voici une partie de mon code:Comment afficher mon application Silverlight après le chargement des données?
public Brasil()
{
//InitializeComponent();
webService = new DataRetrieverReference.DataRetrieverClient();
webService.GetCounterCompleted += new EventHandler<WebPortos.DataRetrieverReference.GetCounterCompletedEventArgs>(webService_GetCounterCompleted);
webService.GetCounterAsync();
webService.GetDataCompleted += new EventHandler<DataRetrieverReference.GetDataCompletedEventArgs>(webService_GetDataCompleted);
}
void webService_GetCounterCompleted(object sender, WebPortos.DataRetrieverReference.GetCounterCompletedEventArgs e)
{
int counter = e.Result;
this.dictionary = new Dictionary<int, WebPortos.DataRetrieverReference.vwPortos_SEP>();
for (int i = 0; i < counter; i++)
{
webService.GetDataAsync(i);
}
InitializeComponent();
}
Comme vous pouvez le voir, je l'ai mis dans ma méthode de chargement de données, mais cela n'a pas fonctionné. Des conseils?
Le problème est qu'il est destiné à être la solution du monde réel ... Je vais le réparer après la date limite. –
Alors pourquoi ne pas utiliser un indicateur de présence? Placez simplement tout le contenu en un et définissez la propriété IsBusy pour le contrôler. Acclamation –