2016-08-25 1 views
1

Je suis en train de convertir le Coroutine Caliburn échantillon de C# à VB la conversion allait bien jusqu'à ce que je suis arrivé à cette déclaration dans le programme d'amorçage:Caliburn.CoRoutine en VB

Coroutine.Completed += (s, e) => { 
    if (e.Error != null) 
     MessageBox.Show(e.Error.Message); 
}; 

Ceci est dans la section de configuration de le bootstrapper et je présume que son but est d'intercepter toutes les erreurs après la fin du CoRoutine et de le poster dans une boîte de message.

En VB cela se traduit par:

Coroutine.Completed += Function(s, e) 
          If e.[Error] IsNot Nothing Then 
           MessageBox.Show(e.[Error].Message) 
          End If 
         End Function 

Cela devient un gribouillis dans l'éditeur et dans VS 2015, le message d'erreur indique que vous devez utiliser un événement relance, - semble cependant que ne pas - - faire sens où ici dans le bootstrapper, il me semble que le but de la Lambda est de gérer l'événement.

J'aimerais beaucoup avoir des nouvelles de Caliburn en VB. Les conversions initiales de chacun des Caliburn Samples sont un vrai défi, mais c'est encore plus difficile pour moi car je travaille dans une application de bureau WPF plutôt que Silverlight et même si les deux sont similaires, les exemples Silverlight présentent beaucoup de pièges. J'ai maintenant une bibliothèque de près de 20 cm de bureau Des échantillons de travail tout en VB, que je serais heureux de partager, mais Coroutines ont été un diable insaisissable pour faire fonctionner en VB

Répondre

1

utilisation AddHandler

AddHandler Coroutine.Completed, 
    Sub(s, e) 
     If e.[Error] IsNot Nothing Then 
      MessageBox.Show(e.[Error].Message) 
     End If 
    End Sub 
+0

I pense que ça devrait être 'Sub ... End Sub'. (Sinon bien). –

+0

Vous avez raison – Nkosi

+0

qui l'a fait, merci – user3418258