Saturday 15 February 2014

c# - ObservableCollection in ViewModel, List in Model -



c# - ObservableCollection in ViewModel, List in Model -

i'm struggling find solution problem of having maintain 2 lists.

i'm using mvvm, don't want model utilize observablecollection. sense best encapsulate , allows me utilize different views/patterns (a console example). instead of setting construction this:

public class mainwindow { // handled in xaml file, no code in .cs file } public abstract class viewmodelbase : inotifypropertychanged { // handles typical functions of viewmodel base of operations class } public class mainwindowviewmodel : viewmodelbaseclass { public observablecollection<account> accounts { get; private set; } } public class administrator { public list<account> accounts { get; set; } public void addaccount(string username, string password) { // blah blah } }

i avoid having 2 different collections/lists in case above. want model handle data, , viewmodel responsible logic of how rendered.

what utilize icollectionview in viewmodel show model data.

public class mainwindowviewmodel : viewmodelbaseclass { public icollectionview accounts { get; private set; } private administrator _admin; //ctor public mainwindowviewmodel() { _admin = new administrator(); this.accounts = collectionviewsource.getdefaultview(this._admin.accounts); } //subscribe model changes , phone call refresh this.accounts.refresh();

xaml

<listbox itemssource="{binding accounts}" />

c# wpf xaml

No comments:

Post a Comment