1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
Robert 18225ca6fa Data bindings - Fixed some conversion issues
Data bindings - Started hooking up the UI
2020-09-04 23:12:48 +02:00

56 lines
2.1 KiB
C#

using System.Linq;
using Artemis.Core;
using Artemis.UI.Ninject.Factories;
using Stylet;
namespace Artemis.UI.Screens.ProfileEditor.LayerProperties.DataBindings
{
public class DataBindingsViewModel : PropertyChangedBase
{
private readonly IDataBindingsVmFactory _dataBindingsVmFactory;
private DataBindingsTabsViewModel _dataBindingsTabsViewModel;
private DataBindingViewModel _dataBindingViewModel;
public DataBindingsViewModel(BaseLayerProperty layerProperty, IDataBindingsVmFactory dataBindingsVmFactory)
{
_dataBindingsVmFactory = dataBindingsVmFactory;
LayerProperty = layerProperty;
Initialise();
}
public BaseLayerProperty LayerProperty { get; }
public DataBindingViewModel DataBindingViewModel
{
get => _dataBindingViewModel;
set => SetAndNotify(ref _dataBindingViewModel, value);
}
public DataBindingsTabsViewModel DataBindingsTabsViewModel
{
get => _dataBindingsTabsViewModel;
set => SetAndNotify(ref _dataBindingsTabsViewModel, value);
}
private void Initialise()
{
DataBindingViewModel = null;
DataBindingsTabsViewModel = null;
var properties = LayerProperty.GetDataBindingProperties();
if (properties == null || properties.Count == 0)
return;
// Create a data binding VM for each data bindable property. These VMs will be responsible for retrieving
// and creating the actual data bindings
if (properties.Count == 1)
DataBindingViewModel = _dataBindingsVmFactory.DataBindingViewModel(LayerProperty, properties.First());
else
{
DataBindingsTabsViewModel = new DataBindingsTabsViewModel();
foreach (var dataBindingProperty in properties)
DataBindingsTabsViewModel.Tabs.Add(_dataBindingsVmFactory.DataBindingViewModel(LayerProperty, dataBindingProperty));
}
}
}
}