android - Xamarin.Forms ListView set SelectedItem by Code -
how can set selecteditem of listview in code? problem is, isn't highlighted when preselect item in code. listview defined in xaml file.
<listview itemssource="{binding items}" selecteditem="{binding selecteditem}" /> my viewmodel
class myviewmodel { list<myitem> items {get; set;} myitem selecteditem { get; set; } public myviewmodel() { items = new list<myitem>{ ... }; selecteditem = items.first(); } } but when show view, not highlighting selected item. when click on item, highlighted , set correctly. i've played around property changed, shouldn't have effect, because property set right in constructor.
in order view update when properties on myviewmodel change, class must implement inotifypropertychanged. here's example:
public class myviewmodel : inotifypropertychanged { public event propertychangedeventhandler propertychanged; protected virtual void onpropertychanged([callermembername] string propertyname = null) { var handler = propertychanged; if (handler != null) handler(this, new propertychangedeventargs(propertyname)); } } but importantly must call onpropertychanged in setters, selecteditem property need this:
myitem _selecteditem; myitem selecteditem { { return _selecteditem; } set { _selecteditem = value; onpropertychanged("selecteditem"); } } lots of information on mvvm in xamarin forms here: from data bindings mvvm
Comments
Post a Comment