public class ObservableObject : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged = delegate { };
protected virtual void RaisePropertyChangedEvent([CallerMemberName] string propertyName = null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
protected virtual void SetProperty<T>(ref T member, T val, [CallerMemberName] string propertyName = null)
{
if (object.Equals(member, val)) return;
member = val;
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public class ViewModelBase : ObservableObject
{
public virtual bool IsInDesignMode()
{
#if WINDOWS_PHONE_APP
if (DesignerProperties.IsInDesignTool)
{
return true;
}
else
{
return false;
}
#else
if (DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject()))
{
return true;
}
else
{
return false;
}
#endif
}
}