Hjælp til forståelse af Model View-ViewModel (silverlight)
Hey alle,Jeg er i øjeblikket igang med, at prøve at forstå Model View-ViewModel mønsteret og har i den forbindelse lavet en lille test-applikation til det :)
Min arkitektur er rimelig simpel og lige efter bogen i øjeblikket.
- Client mappe
- ViewModel class lib
- Views (xaml pages)
- Server mappe
- ASP.NET website til at hoste silverligt app
- Model class lib
- Service mappe
- Services class lib
Jeg har fundet ud af, at få et Customer objekt med op igennem lagene og kan hive informationer ud af det (f.eks. Firstname)
Der hvor jeg sidder fast i øjeblikket er, at hvis jeg får en hel liste tilbage af Customer objekter, hvordan får jeg så samtlige af disse "hevet ud" og listet i f.eks. en listbox?
Min nuværende CustomerViewModel.cs ser i øjeblikket sådan her ud:
public class CustomerViewModel : INotifyPropertyChanged
{
private Customer _customer = null;
public Customer Customer
{
get { return _customer; }
set
{
this._customer = value;
RaisePropertyChanged("Customer");
RaisePropertyChanged("AllCustomers");
}
}
public void GetCustomers()
{
CustomerServiceClient client = new CustomerServiceClient();
client.GetCustomersCompleted += new EventHandler<GetCustomersCompletedEventArgs>(client_GetCustomersCompleted);
client.GetCustomersAsync();
}
void client_GetCustomersCompleted(object sender, GetCustomersCompletedEventArgs e)
{
this.Customer = e.Result;
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
#endregion
}
Jeg forstår udmærket godt, hvad det er der sker i den klasse, men er, som skrevet, bare i tvivl om, hvordan man "behandler" lister?
Min CustomerView.xaml.cs ser således ud:
public partial class CustomerView : Page
{
CustomerViewModel customerViewModel = new CustomerViewModel();
public CustomerView()
{
InitializeComponent();
this.DataContext = customerViewModel;
Loaded += new RoutedEventHandler(CustomerView_Loaded);
}
void CustomerView_Loaded(object sender, RoutedEventArgs e)
{
customerViewModel.GetCustomers();
}
}
... og som sagt fungerer det fint hvis jeg bare skal have en enkelt Customer ud.
Nogen der kan 'enlighten' mig her? :) I må sige til, hvis der er nogle ting jeg skal uddybe.
På forhånd tak!