protected virtual bool SetProperty <T>(ref T field, T value, [CallerMemberName] string propertyName = null) { if (EqualityComparer <T> .Default.Equals(field, value)) { return(false); } field = value; var ignore = DispatcherHelper.DispatchAsync(() => { OnPropertyChanged(propertyName); }); return(true); }