如何更新ObservableCollection<>来自xamarin的另一页的一页

时间:2017-06-01 06:53:44

标签: xamarin mvvm observablecollection

我的应用程序是MVVM架构。

我有photo.xaml页面,其中我有1个ListView whoose bindingcontext是ObservableCollection listphoto的照片,它在viewmodel.cs文件中定义。

现在我必须通过按钮点击photo.xaml重定向到BarcodeScan.cs。

我的问题我怎么能从这里添加项目到listphoto(BarcodeScan.cs)??

我试图像这样在BarcodeScan中定义新列表

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

并在其构造函数中初始化

ListSerialNumbers = new ObservableCollection<JobPhoto>();

但它不会更新photo.xaml页面上的列表。

我怎样才能做到这一点。我是MVVM.Please帮助的新手。

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以尝试使用MessageCenter https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/

在电话页面中,您可以下标消息并从另一页发送消息。

答案 1 :(得分:1)

您应该使用消息中心

首先将其方法注册为:

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

在此之后,您可以从另一个页面调用它

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

希望它有所帮助。

更多详细信息,请访问:https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/messaging-center/

答案 2 :(得分:0)

  

我有photo.xaml页面,其中我有1个ListView whoose bindingcontext是ObservableCollection listphoto的照片,它在viewmodel.cs文件中定义。

首先,值得展示你的XAML代码。

您在上面的引文中说,您将listview的bindingcontext设置为集合。您应该将ListView的ItemSource属性设置为集合。