windows phone 7 - How do i refresh the datacontext on page -


i using mvvm in wp8 app. have landing page(allproducts.xaml) displays list of products. in constructor have this.datacontext = productsviewmodel;

in allproducts.xaml, have

  1. listbox bind property(productlist) of productsviewmodel.

  2. an app bar add button takes user addproduct.xaml page. here, user adds new product gets saved in database. after save method called, have navigationservice.goback(); takes user previous page (allproducts.xaml)

however, allproducts.xaml shows newly added product. obvious & think because of navigationservice.goback(); restores state of previous page , not rebinds it.

how rebind/refresh page newly added product displayed in list?

here xaml code in allproducts.xaml bound productlist property of productsviewmodel

<phone:longlistselector itemssource="{binding getproductlist, mode=twoway}"                         name="lls"                         itemtemplate="{staticresource mydatatemplatehere}"                         toolkit:tilteffect.istiltenabled="true"                          selectionchanged="lls_selectionchanged"/> 

here productsviewmodel

    public class productsviewmodel: inotifypropertychanged     {     private observablecollection<productlist> _productlist;             public observablecollection<productlist> getproductlist             {                                 {                     var prodlist = p in unitofwork.productrepository.getall()                                   join c in unitofwork.customerrepository.getall()                                   on p.custid equals c.custid                                   select new productlist { productid = p.id, productname = p.productname, customerid = c.custid};                     _productlist= new observablecollection<productlist>(prodlist .tolist());                     return _productlist;                 }                 set                 {                     _productlist= value;                     onpropertychanged("getproductlist");                 }             }   public event propertychangedeventhandler propertychanged;         protected void onpropertychanged(string propertyname)         {             if (propertychanged != null)             {                 propertychanged(this, new propertychangedeventargs(propertyname));             }         }     } 

here productlist class.

 public class productlist     {         public int productid { get; set; }         public string  productname { get; set; }         public int customerid { get; set; }     } 

you gotta let binding know needs query getter.. after adding new item

raisepropertychanged(() => productsviewmodel);  or make productsviewmodel observablecollection 

Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

CSS3 Transition to highlight new elements created in JQuery -