|
|
|
|
@ -6,12 +6,17 @@ using System; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
using System.Collections.ObjectModel; |
|
|
|
|
using System.Linq; |
|
|
|
|
using System.Windows.Input; |
|
|
|
|
using Lib.Audio.Interfaces; |
|
|
|
|
using Mystify.Views; |
|
|
|
|
using ReactiveUI; |
|
|
|
|
|
|
|
|
|
namespace Mystify.ViewModels |
|
|
|
|
{ |
|
|
|
|
public class ControllableSelectionViewModel : ViewModelBase |
|
|
|
|
{ |
|
|
|
|
private readonly ControllableSelectionWindow? _window; |
|
|
|
|
|
|
|
|
|
public ControllableSelectionViewModel() |
|
|
|
|
{ |
|
|
|
|
if (!IsInDesignMode) |
|
|
|
|
@ -20,8 +25,10 @@ namespace Mystify.ViewModels |
|
|
|
|
Controllables = new ObservableCollection<ControllableViewModel>(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public ControllableSelectionViewModel(List<IControllable>? controllables) |
|
|
|
|
public ControllableSelectionViewModel(List<IControllable>? controllables, ControllableSelectionWindow window) |
|
|
|
|
{ |
|
|
|
|
_window = window; |
|
|
|
|
|
|
|
|
|
Controllables = controllables == null ? new ObservableCollection<ControllableViewModel>() : |
|
|
|
|
controllables.Select(c => new ControllableViewModel(c)).ToObservableCollection(); |
|
|
|
|
|
|
|
|
|
@ -30,8 +37,11 @@ namespace Mystify.ViewModels |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public ObservableCollection<ControllableViewModel> Controllables { get; } |
|
|
|
|
public ControllableViewModel? SelectedControllable { get; private set; } |
|
|
|
|
private ControllableViewModel? SelectedControllable { get; set; } |
|
|
|
|
|
|
|
|
|
public ICommand CloseCommand => ReactiveCommand.Create(CloseWindow); |
|
|
|
|
|
|
|
|
|
private void CloseWindow() => _window?.Close(SelectedControllable); |
|
|
|
|
private void OnControllableSelected(object? sender, bool isSelected) |
|
|
|
|
{ |
|
|
|
|
if (!isSelected) |
|
|
|
|
@ -41,6 +51,7 @@ namespace Mystify.ViewModels |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
SelectedControllable = controllableViewModel; |
|
|
|
|
CloseWindow(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |