c# - Why isn't this data binding working? -


so i'm brand new wpf data binding, , is.. complicated. @ point, i'm trying create list of premade test items , have displayed in listbox data template when press button. after hours of puzzling through tutorials , msdn best come with.

the data item want make list from:

class listingitem {     private string title;     private string user;     private string category;      //dummy constructor test purposes     public listingitem()     {         title = "testtitle";         user = "testuser";         category = "testcatagory";     } } 

the quick , dirty list creator:

class listmaker {     public static list<listingitem> getlisting()     {         list<listingitem> listing = new list<listingitem>();         for(int = 0; <100; i++)         {             listing.add(new listingitem());         }         return listing;     } } 

the xaml of list itself:

<listbox x:name="listing"> <listbox.itemtemplate>     <datatemplate>         <stackpanel orientation="vertical">             <stackpanel orientation="horizontal">                 <textblock foreground="gray" margin="25,0,0,0" text="{binding user}"/>                 <textblock foreground="gray" margin="25,0,0,0" text="{binding category}"/>             </stackpanel>             <textblock foreground="black" width="270" textwrapping="wrap" text="{binding title}"/>         </stackpanel>     </datatemplate> </listbox.itemtemplate> 

and finally, button click event supposed make magic happen:

private void tabclickevent(object sender, routedeventargs e)     {         listing.datacontext = redditscanner.getlisting();     } 

problem is, obviously, magic not happening. no errors or easy, press button , dont see change list box. this?

you cannot bind private fields. not public fields think.

use properties:

class listingitem {     //private string title;     //private string user;     //private string category;      public string title { get; set; }     public string user { get; set; }     public string category { get; set; }      //dummy constructor test purposes     public listingitem()     {         title = "testtitle";         user = "testuser";         category = "testcatagory";     } } 

and full databinding have to implement inotifypropertychanged on listingitem.

the magic not happening. no errors or easy,

keep eye on output window during execution. binding errors reported.


Comments

Popular posts from this blog

java - Run a .jar on Heroku -

java - Jtable duplicate Rows -

validation - How to pass paramaters like unix into windows batch file -