2017-06-01 1 views
0

Mon application est dans l'architecture MVVM.comment mettre à jour ObservableCollection <> d'une page d'une autre page dans xamarin

J'ai la page photo.xaml dans laquelle j'ai 1 ListView whoose bindingcontext est ObservableCollection listphoto des photos qui est défini dans son fichier viewmodel.cs.

maintenant je dois rediriger vers BarcodeScan.cs à partir du clic de photo.xaml.

mon que je comment puis-je ajouter l'article à listphoto d'ici (BarcodeScan.cs) ??

J'ai essayé de définir une nouvelle liste BarcodeScan comme celui-ci

public ObservableCollection<JobPhoto> ListSerialNumbers { get; set; } 

et dans son constructeur réactiver les comme celui-ci

ListSerialNumbers = new ObservableCollection<JobPhoto>(); 

mais EXCLURE de mise à jour à la page de photo.xaml.

Comment puis-je y parvenir. Je suis nouveau à MVVM.S'il vous plaît Aide.

Merci.

Répondre

1

Vous devez utiliser le centre de messagerie pour cette

d'abord l'obtenir méthode enregistrée comme:

MessagingCenter.Subscribe<YourObjectClassComesHere>(this, "Any Message or empty string will be okay", (Obj) => 
      { 
       //Code you want to execute 
      }); 

Après cela, vous pouvez l'appeler d'une autre page

MessagingCenter.Send(YourObject(of type "YourObjectClassComesHere"), "Any Message or empty string will be okay"); 

Hope it helps.

Plus de détails sont disponibles à: https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/

+0

merci beaucoup :) –

0

J'ai une page photo.xaml dans laquelle j'en ai 1 ListView whoose bindingcontext est ObservableCollection listphoto de photos qui est défini dans son fichier viewmodel.cs.

Tout d'abord, il serait utile de montrer votre code XAML.

Vous dites dans la citation ci-dessus que vous avez défini le bindingcontext de la listview à la collection. Vous devez définir la propriété ItemSource de ListView à la collection.