c# - Sorting a listbox when a button gets clicked using MVVM -


i've been looking solution problem since yesterday. im building problem mvvm pattern. got 2 usercontrol, both containing listbox.

the first usercontrol called searchview contains listbox of project names, user can select , save applications local db.

enter image description here

when selected projects added event fired notify 2nd usercontrol named "projectview". usercontrol shows projects saved locally. seen @ picture below.

enter image description here

the problem want able sort listbox ascending name in projectview. if user first add "test project 2" , afterwords add "test project 1" "test project 1" shown in top of listbox.

i have tried use icollectionview , listcollectionview im confused @ moment.

so code looks this, in projectviewmodel needs sort listbox:

 public projectviewmodel() {      this.collectionview = collectionviewsource.getdefaultview(this.projects);  }   private observablecollection<projectwrapper> _project = new observablecollection<projectwrapper>();  public observablecollection<projectwrapper> projects  {      { return _project; }      set      {          _project = value;          onpropertychanged("projects");      }  } 

xaml code:

<usercontrol.resources>     <collectionviewsource x:key="cvs" source="{binding path=projects}">         <collectionviewsource.sortdescriptions>             <scm:sortdescription propertyname="projectwrapper.project.name" />         </collectionviewsource.sortdescriptions>     </collectionviewsource> </usercontrol.resources>  <listbox name="projectslist" itemssource="{binding source={staticresource cvs}}" selecteditem="{binding path=selectedproject}" horizontalcontentalignment="stretch" borderthickness="0" grid.row="1" grid.rowspan="3" margin="0,0.4,-0.2,27.8">         <listbox.itemtemplate>             <datatemplate>                 <dockpanel>                     <textblock text="{binding path=projectmodel.name}" horizontalalignment="left" verticalalignment="center" padding="3,2,0,0" />                     <checkbox  ischecked="{binding path=isselected, mode=twoway, updatesourcetrigger=propertychanged}" horizontalalignment="right" verticalalignment="center" padding="0,2,5,0" margin="0,2.5,0,0" />                 </dockpanel>             </datatemplate>         </listbox.itemtemplate>     </listbox> 

thanks in advance

call when adding element projects list

projects = new observablecollection<projectwrapper>(projects.orderby(x => x.name)); 

Comments

Popular posts from this blog

php - Why I am getting the Error "Commands out of sync; you can't run this command now" -

linux - Does gcc have any options to add version info in ELF binary file? -

java - Are there any classes that implement javax.persistence.Parameter<T>? -