مشخصات مقاله
ساخت model و منبع داده
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد .
ساخت model و منبع داده
Model :
قبل از ایجاد UI باید مدل را ایجاد کنیم. برای این منظور باید موارد زیر را تعریف کنید:
Session: کلاسی که یک Session را از طریق رویداد 1010 ENEI تعریف می کند.
Speaker: کلاسی که یک speaker تعریف می کند.
هر Session باید یک speaker (در دنیای واقعی میتوانید بیش از یک session) داشته باشد. در شکل زیر نمودار کلاسی model را مشاهده می کنید:
در پروژه ENEI.SessionsApp و در داخل پوشه Model، یک کلاس Session و یک کلاس Speaker، مانند تصویر زیر ایجاد میکنیم:
کلاس Session به شکل زیر تعریف می شود:
public class Session : INotifyPropertyChanged
{
private int _numLikes;
private Speaker _speaker;
private string _date;
private string _description;
private string _name;
private bool _isFavorite;
private string _schedule;
private string _room;
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged(); }
}
public string Description
{
get { return _description; }
set { _description = value; OnPropertyChanged(); }
}
public string Date
{
get { return _date; }
set { _date = value; OnPropertyChanged(); }
}
public int NumLikes
{
get { return _numLikes; }
set { _numLikes = value; OnPropertyChanged(); }
}
public Speaker Speaker
{
get { return _speaker; }
set { _speaker = value; OnPropertyChanged(); }
}
public bool IsFavorite
{
get { return _isFavorite; }
set { _isFavorite = value; OnPropertyChanged(); }
}
public string Schedule
{
get { return _schedule; }
set { _schedule = value; OnPropertyChanged(); }
}
public string Room
{
get { return _room; }
set { _room = value; OnPropertyChanged(); }
}
public string Details
{
get { return string.Format("{0} | {1} | Sala {2} ", Date, Schedule, Room); }
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
و کلاس Speaker عبارت است از:
public class Speaker : INotifyPropertyChanged
{
private string _name;
private string _imageUrl;
public string Name
{
get { return _name; }
set { _name = value; OnPropertyChanged(); }
}
public string ImageUrl
{
get { return _imageUrl; }
set { _imageUrl = value; OnPropertyChanged(); }
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
هر دو کلاس، Interface ای با نام INotifyPropertyChanged را پیاده سازی می کنند و UI را از تغییرات model مطلع می سازد و به این ترتیب داده ها در UI بروزرسانی می شوند (زمانی که در Bindingها استفاده شوند).
منبع داده
منبع داده یا همان data source، داده های برنامه را بارگذاری می کند و حجم عظیمی از داده های Hard Code شده خواهید داشت. اما در سنارئو های واقعی از یک فایل، پایگاه داده یا سرویس هایی را باید در اختیار داشته باشید تا آن را فراهم کنید.
از طریق آدرس زیر کلاس SessionsDataSource را دانلود کنید و یا داده های خودتان را ایجاد کنید.
https://github.com/saramgsilva/XamarinWorkshop/blob/master/1010ENEI/2.%20Create%20the%20model%20and%20data%20source/ENEI.SessionsApp/ENEI.SessionsApp/Data/SessionsDataSource.cs