using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.Core; namespace Tango.SharedUI.Components { public class SelectedObject : ExtendedObject { public event EventHandler IsSelectedChanged; private bool _isSelected; public bool IsSelected { get { return _isSelected; } set { _isSelected = value; RaisePropertyChangedAuto(); IsSelectedChanged?.Invoke(this, new EventArgs()); } } private bool _isEnabled; public bool IsEnabled { get { return _isEnabled; } set { _isEnabled = value; RaisePropertyChangedAuto(); } } private Object _data; public Object Data { get { return _data; } set { _data = value; RaisePropertyChangedAuto(); } } public SelectedObject() { IsEnabled = true; } public SelectedObject(Object data) : this() { Data = data; } public SelectedObject(Object data, bool selected) : this(data) { IsSelected = selected; } } public class SelectedObject : SelectedObject { new public T Data { get { return (T)base.Data; } set { base.Data = (T)value; RaisePropertyChangedAuto(); } } public SelectedObject() : base() { } public SelectedObject(T data) : this() { Data = data; } public SelectedObject(T data, bool selected) : this(data) { IsSelected = selected; } } }