c# - get data from datalayer into observablecollection in View -


i data datalayer class viewmodel doesn't observablecollection binded listbox in view.

public class viewmodel : notifyuibase {     public viewmodel()     {          findimagecommand = new relaycommand(findimage);     }      public observablecollection<image> findvisualreferences { get; set; }            public relaycommand findimagecommand { get; private set; }      private void findimage()     {          string searchterm = this.searchbox;          var dbfunctions = new databasefunctions();          findvisualreferences = dbfunctions.findvisualreferences(searchterm);     } } 

i've tested findvisualreferecences(searchterm) method , gives items needed fill observablecollection. tested databinding view , that's working to.

when place method in constructor observablecollection gets filled

  public viewmodel()     {          var dbfunctions = new databasefunctions();          findvisualreferences = dbfunctions.findvisualreferences(searchterm);     } 

but need call method when user gives findimagecommand. how can make work? i'm rookie when comes coding.

your problem setting findvisualreference property new instance of observablecollection instead of adding , removing existing one.

public observablecollection<image> findvisualreferences { get; set; }  private void findimage() {      string searchterm = this.searchbox;      var dbfunctions = new databasefunctions();      findvisualreferences.clear();      findvisualreferences.addrange(dbfunctions.findvisualreferences(searchterm)); } 

alternatively can you've done , set property

findvisualreferences = dbfunctions.findvisualreferences(searchterm);  

but in order work have raise propertychanged event.

private observablecollection<image> _findvisualreferences; public observablecollection<image> findvisualreferences  {     get{ return _findvisualreferences;}    set    {        _findvisualreferences = value;        raiseproperychanged("findvisualreferences");    } } 

but if doing there's not point in using observablecollection being use list instead.

my suggestion , make readonly property (i.e. getter only) , add it.

private observablecollection<image> _findvisualreferences; public observablecollection<image> findvisualreferences  {        {        if(_findvisualreferences == null)           _findvisualreferences = new observablecollection<image>();         return _findvisualreferences;    }        } 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -