using System; using System.Linq.Expressions; using System.Runtime.CompilerServices; using InABox.Core; namespace comal.timesheets { public abstract class SingleDataModelItem : CoreDataModelItem where TEntity : Entity, IRemotable, IPersistent, new() { public TEntity Entity { get; private set; } protected override void RowChanged() { base.RowChanged(); Entity = Row.ToObject(); } protected void UpdateValue(Expression> expression, T value, bool notify = true, [CallerMemberName] string propertyName = "" ) { Row.Set(expression, value); CoreUtils.SetPropertyValue( Entity, CoreUtils.GetFullPropertyName(expression, "."), value ); if (notify) DoPropertyChanged(propertyName); } } }