mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Data model visualization - Added support for custom display VMs Data model visualization - Added framework for custom input VMs Shared UI - Made internal converters public
39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
using Stylet;
|
|
|
|
namespace Artemis.UI.Shared.DataModelVisualization
|
|
{
|
|
public abstract class DataModelDisplayViewModel<T> : DataModelDisplayViewModel
|
|
{
|
|
private T _displayValue;
|
|
|
|
public T DisplayValue
|
|
{
|
|
get => _displayValue;
|
|
set
|
|
{
|
|
if (!SetAndNotify(ref _displayValue, value)) return;
|
|
OnDisplayValueUpdated();
|
|
}
|
|
}
|
|
|
|
protected virtual void OnDisplayValueUpdated()
|
|
{
|
|
}
|
|
|
|
internal override void UpdateValue(object model)
|
|
{
|
|
DisplayValue = model is T value ? value : default;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// For internal use only, implement <see cref="DataModelDisplayViewModel{T}" /> instead.
|
|
/// </summary>
|
|
public abstract class DataModelDisplayViewModel : PropertyChangedBase
|
|
{
|
|
/// <summary>
|
|
/// Prevents this type being implemented directly, implement <see cref="DataModelDisplayViewModel{T}" /> instead.
|
|
/// </summary>
|
|
internal abstract void UpdateValue(object model);
|
|
}
|
|
} |