using Artemis.Core.Plugins.Abstract.DataModels.Attributes; using Stylet; namespace Artemis.UI.Shared.DataModelVisualization { public abstract class DataModelInputViewModel : DataModelInputViewModel { private T _inputValue; protected DataModelInputViewModel(DataModelPropertyAttribute description, T initialValue) { Description = description; InputValue = initialValue; } public T InputValue { get => _inputValue; set => SetAndNotify(ref _inputValue, value); } public DataModelPropertyAttribute Description { get; } internal override object InternalGuard { get; } = null; protected void Submit() { } } /// /// For internal use only, implement instead. /// public abstract class DataModelInputViewModel : PropertyChangedBase { /// /// Prevents this type being implemented directly, implement instead. /// // ReSharper disable once UnusedMember.Global internal abstract object InternalGuard { get; } } }