WPF MVVM - create model from database -


i heard suitabale solution situation.

i use in wpf app caliburn.micro framework. need have acess sql compact db. on db access use linq sql.

for example in view have combobox control or listbox control. need load items of these controls db.

so create simple class on access db.

[export(typeof(idbmanager))] public partial class dbmanager : idbmanager {      public ilist<spirit_users> loadspiritusers()     {         var result = u in _dc.spirit_users orderby u.nick select u;         return result.tolist();     } } 

i inject class mef view model class. on use method class on db access in view model class on load items combobox.

[export(typeof(ilogonviewmodel))] public class logonviewmodel : screen, ilogonviewmodel,     ipartimportssatisfiednotification {     [import]     internal idbmanager dbmanager { get; set; }      //this property bind on listbox or combobox     public bindablecollection<spirit_users> spiritusers     {         { return _spiritusers; }         set         {             _spiritusers = value;             notifyofpropertychange(() => spiritusers);         }     }       private void configurespiritusers()     {         //load items combobox or listbox         var users = settingsdbmanager.loadspiritusers();          //add collection binded on control in view         if (users.count > 0)         {             foreach (var user in users)             {                 spiritusers.add(user);             }         }     }       protected override void onactivate()     {         configurespiritusers();         base.onactivate();     } } 

i don’t know if solution correct , suitable in scenarion wpf app mvvvm.

also need create crud operation view model class db. example save object/data database.

thank advice.

this looks fine, in configurespiritusers reference settingsdbmanager, defined? should dbmanager instead?

really, dbmanager spirituserrepository, , include other crud operations methods on interface , concrete implementation. long view models working against abstractions, fine.

also, populate spiritusers collection in 1 line this.spiritusers = new bindablecollection(users). make type of spiritusers iobservablecollection<spirit_user>, or better still abstraction of spirit_user (i.e. ispirituser).


Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -