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

Popular posts from this blog

1111. appearing after print sequence - php -

java - WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/board/] in DispatcherServlet with name 'appServlet' -

Ruby on Rails, ActiveRecord, Postgres, UTF-8 and ASCII-8BIT encodings -