c# - Multiple Filters not working in DataGrid WPF -


my databinding works fine in datagrid, when try collectionview collectionviewsource, null, , filter in datagrid not work. here code:

<window.resources>     <collectionviewsource x:key="jobitemviewsource" d:designsource="{d:designinstance my:jobitem, createlist=true}"/> </window.resources>  <grid visibility="visible" showgridlines="false" uselayoutrounding="true" datacontext="{staticresource jobitemviewsource}">  <datagrid grid.row="4" grid.columnspan="6" loadingrow="jobitemdatagrid_loadingrow" itemssource="{binding}" name="jobitemdatagrid" rowdetailsvisibilitymode="visiblewhenselected" isreadonly="true" issynchronizedwithcurrentitem="true" autogeneratecolumns="false" grid.rowspan="2">                     <datagrid.columns>                         <datagridtextcolumn x:name="workordernocolumn" binding="{binding path=workorderno}" header="work order no." width="75" />                         <datagridtextcolumn x:name="assigneecolumn" binding="{binding path=primaryassignee}" header="assignee" width="80" />                         <datagridtextcolumn x:name="datereceivedcolumn" binding="{binding path=datereceived}" header="date received" width="90" />                         <datagridtextcolumn x:name="duedatecolumn" binding="{binding path=duedate}" header="due date" width="90" />                         <datagridtextcolumn x:name="statuscolumn" binding="{binding path=status}" header="status" width="70" />                     </datagrid.columns>                  </datagrid> <checkbox content="show active jobs" name="actjobscheckbox" grid.column="1" grid.columnspan="2"  grid.row="3" horizontalalignment="center" verticalalignment="center" checked="addfiltering" unchecked="removefiltering"/>                 <checkbox content="show completed jobs" name="compjobscheckbox" grid.column="3" grid.columnspan="3"  grid.row="3" horizontalalignment="center" verticalalignment="center" checked="addfiltering" unchecked="removefiltering"/>  </grid> 

in code behind, have following:

public partial class adminview : window {     observablecollection <jobitem> jobitemlist = new observablecollection<jobitem>();     collectionviewsource jobitemviewsource = new collectionviewsource();     icollectionview view;      mainwindow parent;     employee curremployee;     groupfilter filterlist = new groupfilter();      public adminview(mainwindow parent, employee curremployee)     {         this.parent = parent;         this.curremployee = curremployee;         initializecomponent();         jobitemdatagrid.datacontext = jobitemlist;         jobitemviewsource = (collectionviewsource)(this.resources[jobitemviewsource]);         view = collectionviewsource.getdefaultview(jobitemdatagrid);       }  private void addfiltering(object sender, routedeventargs args)     {         checkbox check = sender checkbox;         predicate<object> active = new predicate<object>(containsactive);         predicate<object> completed = new predicate<object>(containscomp);          switch (check.name)         {             case "actjobscheckbox":                 filterlist.addfilter(active);                 if( view != null)                     view.filter = filterlist.filter;                 break;             case "compjobscheckbox":                 filterlist.addfilter(completed);                 if (view != null)                     view.filter = filterlist.filter;                 break;         }       }      private void removefiltering(object sender, routedeventargs args)     {         checkbox check = sender checkbox;         predicate<object> active = new predicate<object>(containsactive);         predicate<object> completed = new predicate<object>(containscomp);          switch (check.name)         {             case "actjobscheckbox":                 filterlist.removefilter(active);                 break;             case "compjobscheckbox":                 filterlist.removefilter(completed);                 break;         }      }      public bool containsactive(object de)     {         jobitem item = de jobitem;          return (item.status != "completed");     }      public bool containscomp(object de)     {         jobitem item = de jobitem;          return (item.status == "completed");     } 

i have figured out own answer, needed refresh view , works.


Comments

Popular posts from this blog

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -

php - Controller/JToolBar not working in Joomla 2.5 -