using System; using System.ComponentModel; using InABox.Core; using Xamarin.Forms; namespace InABox.Mobile { public class ModelChangedEventArgs : EventArgs { } public delegate void ModelChangedEvent(object sender, ModelChangedEventArgs args); public interface IModel : INotifyPropertyChanged { //IColumns GetColumns(); ImageSource GetImage(Guid id); bool HasImages(); bool Loaded { get; } void BeforeLoad(MultiQuery query); void AfterLoad(MultiQuery query); void Load(Action loaded = null); IModel Refresh(bool force); void Refresh(bool force, Action loaded); event ModelChangedEvent Changed; IModelHost Host { get; } ModelType Type { get; } } }