J'utilise MVVM Toolkit pour créer mes applications WP7 et j'essaye d'obtenir un MessageBox pour afficher une erreur si le WCF le service échoue.MVVM Toolkit - Comment obtenir un MessageBox pour afficher une erreur du rappel en cas d'échec du service WCF
Voici le code que j'ai dans ma couche ServiceHelper:
public void GetRandomBibleVerseById(Action<Bible, Exception> callback)
{
var client = new StoneFalconClient();
client.GetRandomBibleVerseByIdCompleted += (s, e) =>
{
var userCallback = e.UserState as Action<Bible, Exception>;
if (userCallback == null)
{
return;
}
if (e.Error != null)
{
userCallback(null, e.Error);
return;
}
userCallback(e.Result, null);
};
client.GetRandomBibleVerseByIdAsync(callback);
}
J'ai essayé de placer un try/catch autour de l'appel de service en faisant quelque chose comme ça, mais je ne reçois pas de boîte de message à apparaître avec l'erreur. Voici mon MainViewModel:
public MainViewModel()
{
if (IsInDesignMode)
{
BibleVerse = LoadDebugVerse();
}
else
{
try
{
ServiceHelper helper = new ServiceHelper();
helper.GetRandomBibleVerseById((bibleVerse, error) =>
{
Bible displayVerse = LoadDisplayVerse(bibleVerse);
BibleVerse = displayVerse;
TestamentBookChapterVerse = displayVerse.Testament + ": " + displayVerse.Book + " " + displayVerse.Chapter + ":" + displayVerse.Verse; ;
});
}
catch (Exception ex)
{
ErrorMessage = new RelayCommand<String>(m => MessageBox.Show("Error: Click refresh to try again"));
}
}
}
Je liant les XAML dans la page XAML au viewmodel. Je suspecte que je ne devrais pas employer le try/caatch mais inspectant plutôt e.Error mais je n'ai aucune idée comment faire cela.
Toute aide serait appréciée, j'ai cherché pour toujours une réponse sans succès.