Files
bluflame/intromat/Intromat/Views/Editors/GroupEndpointEditorView.xaml.cs
2026-04-18 22:31:51 +02:00

45 lines
1.7 KiB
C#

using System.Diagnostics;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Windows;
using Intromat.ViewModels.Nodes;
using ReactiveUI;
namespace Intromat.Views.Editors
{
public partial class GroupEndpointEditorView : IViewFor<IGroupEndpointEditorViewModel>
{
public static readonly DependencyProperty ViewModelProperty = DependencyProperty.Register(nameof(ViewModel),
typeof(IGroupEndpointEditorViewModel), typeof(GroupEndpointEditorView), new PropertyMetadata(null));
public GroupEndpointEditorView()
{
InitializeComponent();
this.WhenAnyValue(v => v.editNameButton.IsChecked)
.Select(isChecked => isChecked ?? false ? Visibility.Visible : Visibility.Collapsed)
.BindTo(this, v => v.nameTextBox.Visibility);
this.WhenActivated(d =>
{
Debug.Assert(ViewModel != null, nameof(ViewModel) + " != null");
this.Bind(ViewModel, vm => vm.Endpoint.Name, v => v.nameTextBox.Text).DisposeWith(d);
this.BindCommand(ViewModel, vm => vm.MoveUp, v => v.upButton).DisposeWith(d);
this.BindCommand(ViewModel, vm => vm.MoveDown, v => v.downButton).DisposeWith(d);
this.BindCommand(ViewModel, vm => vm.Delete, v => v.deleteButton).DisposeWith(d);
});
}
public IGroupEndpointEditorViewModel? ViewModel
{
get => (IGroupEndpointEditorViewModel?)GetValue(ViewModelProperty);
set => SetValue(ViewModelProperty, value);
}
object? IViewFor.ViewModel
{
get => ViewModel;
set => ViewModel = (IGroupEndpointEditorViewModel?)value;
}
}
}