mirror of
https://github.com/Artemis-RGB/Artemis
synced 2026-11-12 11:56:30 +00:00
Profile tree - Added rename/delete hotkeys to elements Profile tree - Moved dialogs to the tree panel Layer properties - Auto-select transform tool when modifying transform properties
58 lines
2.0 KiB
C#
58 lines
2.0 KiB
C#
using System;
|
|
using Artemis.UI.Ninject.Factories;
|
|
using Artemis.UI.Shared.Services;
|
|
using Stylet;
|
|
|
|
namespace Artemis.UI.Screens.ProfileEditor.LayerProperties.DataBindings
|
|
{
|
|
public class DataBindingsViewModel : Conductor<IDataBindingViewModel>.Collection.AllActive
|
|
{
|
|
private readonly IDataBindingsVmFactory _dataBindingsVmFactory;
|
|
private readonly IProfileEditorService _profileEditorService;
|
|
private int _selectedItemIndex;
|
|
|
|
public DataBindingsViewModel(IProfileEditorService profileEditorService, IDataBindingsVmFactory dataBindingsVmFactory)
|
|
{
|
|
_profileEditorService = profileEditorService;
|
|
_dataBindingsVmFactory = dataBindingsVmFactory;
|
|
|
|
_profileEditorService.SelectedDataBindingChanged += ProfileEditorServiceOnSelectedDataBindingChanged;
|
|
CreateDataBindingViewModels();
|
|
}
|
|
|
|
public int SelectedItemIndex
|
|
{
|
|
get => _selectedItemIndex;
|
|
set => SetAndNotify(ref _selectedItemIndex, value);
|
|
}
|
|
|
|
private void CreateDataBindingViewModels()
|
|
{
|
|
Items.Clear();
|
|
|
|
var layerProperty = _profileEditorService.SelectedDataBinding;
|
|
if (layerProperty == null)
|
|
return;
|
|
|
|
var registrations = layerProperty.GetAllDataBindingRegistrations();
|
|
|
|
// Create a data binding VM for each data bindable property. These VMs will be responsible for retrieving
|
|
// and creating the actual data bindings
|
|
foreach (var registration in registrations)
|
|
Items.Add(_dataBindingsVmFactory.DataBindingViewModel(registration));
|
|
|
|
SelectedItemIndex = 0;
|
|
}
|
|
|
|
protected override void OnClose()
|
|
{
|
|
_profileEditorService.SelectedDataBindingChanged -= ProfileEditorServiceOnSelectedDataBindingChanged;
|
|
base.OnClose();
|
|
}
|
|
|
|
private void ProfileEditorServiceOnSelectedDataBindingChanged(object? sender, EventArgs e)
|
|
{
|
|
CreateDataBindingViewModels();
|
|
}
|
|
}
|
|
} |