c# - I can not get MVVM to work -


i desperately trying implement mvvm , reason not working. using mvvm light on windows 8.1 store app.

what doing wrong? followed 3 tutorials , nothing seems work..

i retrieve data webservice , part 100% works fine. observablecollection contains data.

the rest of code looks this:

viewmodellocator:

public viewmodellocator() {     servicelocator.setlocatorprovider(() => simpleioc.default);      if (viewmodelbase.isindesignmodestatic)     {         // create design time view services , models         simpleioc.default.register<idesigntimeweatherservicelayer, designtimeweatherservicelayer>();     }     else     {         // create run time view services , models         simpleioc.default.register<iweatherservicelayer, weatherservicelayer>();     }      simpleioc.default.register<weatherviewmodel>(); }   public weatherviewmodel weather {         {         return servicelocator.current.getinstance<weatherviewmodel>();     } } 

viewmodel:

public class weatherviewmodel : viewmodelbase {     weatherservicelayer servicelayer = new weatherservicelayer();      public async void getallweatherdata()     {         weatherdata = await servicelayer.getallweatherasync();     }      private observablecollection<weather> weatherdata;     public observablecollection<weather> weatherdata { { return weatherdata; } set { weatherdata = value; raisepropertychanged("weatherdata"); } } } 

code behind:

public mainpage() {     this.initializecomponent();     weatherviewmodel vm = new weatherviewmodel();     vm.getallweatherdata(); } 

view:

... datacontext="{binding weather, source={staticresource locator}}">  <grid background="{themeresource applicationpagebackgroundthemebrush}">     <gridview itemtemplate="{staticresource weatheritemtemplate}" itemssource="{binding weather.weatherdata, source={staticresource locator}}"/> </grid> 

datatemplate:

<datatemplate x:key="weatheritemtemplate">     <stackpanel>         <textblock text="{binding temperature}" height="60" margin="15,0,15,0"/>         <textblock text="{binding weekday}" margin="15,0,15,10"/>     </stackpanel> </datatemplate> 

i'm not sure there couple things seem suspect me. set datacontext property. sure datacontext you're expecting after assignment? can set breakpoint in view's constructor after call initializecomponent check.

further in itemssource binding you're saying "weather.weatherdata" sourced locator. seems redundant , maybe wrong. maybe try "weatherdata" , remove source specification. if datacontext weather, object used bindings in xaml file.


Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -