| 1234567891011121314151617181920212223242526272829303132333435363738 | using System;using System.Collections.Generic;using System.ComponentModel;using System.Runtime.CompilerServices;using InABox.Core;namespace comal.timesheets{        public abstract class CoreDataModel<TEntity> : ICoreDataModel    {        #region INotifyPropertyChanged                public event PropertyChangedEventHandler PropertyChanged;        protected void DoPropertyChanged(object sender, PropertyChangedEventArgs args)        {            PropertyChanged?.Invoke(sender, args);        }                protected bool SetProperty<T>(ref T field, T value, [CallerMemberName] string propertyName = null)        {            if (EqualityComparer<T>.Default.Equals(field, value)) return false;            field = value;            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));            return true;        }                #endregion                // Use "new" to replace this with your actual columns         public abstract Columns<TEntity> Columns { get; }        public IColumns GetColumns() => Columns;            }}
 |