MobileViewModel.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Xamarin.Forms;
  2. namespace InABox.Mobile
  3. {
  4. public abstract class MobileViewModel : BindableObject, IMobileViewModel
  5. {
  6. public Color SelectedColor => XF.Material.Forms.Material.Color.Surface;
  7. public Color SelectedTextColor => XF.Material.Forms.Material.Color.OnSurface;
  8. public Color UnselectedColor => XF.Material.Forms.Material.Color.Primary;
  9. public Color UnselectedTextColor => XF.Material.Forms.Material.Color.OnPrimary;
  10. public event MobileViewModelLoadedEvent Loaded;
  11. protected void OnLoaded()
  12. => Loaded?.Invoke(this, new MobileViewModelLoadedEventArgs());
  13. }
  14. public abstract class MobileViewModel<TShell> : MobileViewModel
  15. {
  16. private TShell _item;
  17. public TShell Item
  18. {
  19. get => _item;
  20. set
  21. {
  22. _item = value;
  23. DoLoad();
  24. OnLoaded();
  25. }
  26. }
  27. protected abstract void DoLoad();
  28. }
  29. }