61 lines
1.4 KiB
C#
61 lines
1.4 KiB
C#
using FluentTerminal.Models;
|
|
using GalaSoft.MvvmLight;
|
|
|
|
namespace FluentTerminal.App.ViewModels.Menu
|
|
{
|
|
public class MenuItemViewModelBase : ViewModelBase
|
|
{
|
|
#region Properties
|
|
|
|
private string _text;
|
|
|
|
public string Text
|
|
{
|
|
get => _text;
|
|
set => Set(ref _text, value);
|
|
}
|
|
|
|
private string _description;
|
|
|
|
public string Description
|
|
{
|
|
get => _description;
|
|
set => Set(ref _description, value);
|
|
}
|
|
|
|
private Mdl2Icon _icon;
|
|
|
|
public Mdl2Icon Icon
|
|
{
|
|
get => _icon;
|
|
set => Set(ref _icon, value);
|
|
}
|
|
|
|
#endregion Properties
|
|
|
|
#region Constructor
|
|
|
|
protected MenuItemViewModelBase(string text, string description, Mdl2Icon icon)
|
|
{
|
|
_text = text;
|
|
_description = description;
|
|
_icon = icon;
|
|
}
|
|
|
|
#endregion Constructor
|
|
|
|
#region Methods
|
|
|
|
public virtual bool EquivalentTo(MenuItemViewModelBase other)
|
|
{
|
|
if (ReferenceEquals(this, other)) return true;
|
|
|
|
if (other == null) return false;
|
|
|
|
return _text.NullableEqualTo(other._text) && _description.NullableEqualTo(other._description) &&
|
|
(_icon?.Equals(other._icon) ?? other._icon == null);
|
|
}
|
|
|
|
#endregion Methods
|
|
}
|
|
} |