Абстрактный базовый класс BindableBase
в проекте WinRT
определяется следующим образом:
[Windows.Foundation.Metadata.WebHostHidden]
public abstract class BindableBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected bool SetProperty<T>(ref T storage, T value, [CallerMemberName] String propertyName = null)
{
if (object.Equals(storage, value)) return false;
storage = value;
this.OnPropertyChanged(propertyName);
return true;
}
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var eventHandler = this.PropertyChanged;
if (eventHandler != null)
{
eventHandler(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Это нормально.
Теперь я вижу много статей, пытающихся реализовать этот класс, делая такие вещи:
private int _timeEstimate;
public int TimeEstimate
{
get { return this._timeEstimate; }
set { this.SetProperty(ref this._timeEstimate, value); }
}
_timeEstimate не инициализирован, как его можно передать с помощью ref
?! есть что-то, что мне не хватает? это действительно расстраивает меня, чего мне не хватает, я даже нахожу то же самое в книгах по подготовке к экзамену Microsoft's Exam-Ref!