Refactor 'Move to Group' menu in ProfilesView
Some checks failed
release Linux / build (Release) (push) Has been cancelled
release macOS / build (Release) (push) Has been cancelled
release Windows desktop (Avalonia UI) / build (Release) (push) Has been cancelled
release Windows / build (Release) (push) Has been cancelled
release Linux / rpm (push) Has been cancelled

This commit is contained in:
2dust 2026-01-10 15:14:58 +08:00
parent 9c74b51d74
commit 947c84cf10
3 changed files with 20 additions and 15 deletions

View file

@ -56,7 +56,8 @@ public class ProfilesViewModel : MyReactiveObject
public ReactiveCommand<Unit, Unit> MoveUpCmd { get; } public ReactiveCommand<Unit, Unit> MoveUpCmd { get; }
public ReactiveCommand<Unit, Unit> MoveDownCmd { get; } public ReactiveCommand<Unit, Unit> MoveDownCmd { get; }
public ReactiveCommand<Unit, Unit> MoveBottomCmd { get; } public ReactiveCommand<Unit, Unit> MoveBottomCmd { get; }
public ReactiveCommand<SubItem, Unit> MoveToGroupCmd { get; }
//servers ping //servers ping
public ReactiveCommand<Unit, Unit> MixedTestServerCmd { get; } public ReactiveCommand<Unit, Unit> MixedTestServerCmd { get; }
@ -179,6 +180,10 @@ public class ProfilesViewModel : MyReactiveObject
{ {
await MoveServer(EMove.Bottom); await MoveServer(EMove.Bottom);
}, canEditRemove); }, canEditRemove);
MoveToGroupCmd = ReactiveCommand.CreateFromTask<SubItem>(async sub =>
{
SelectedMoveToGroup = sub;
});
//servers ping //servers ping
FastRealPingCmd = ReactiveCommand.CreateFromTask(async () => FastRealPingCmd = ReactiveCommand.CreateFromTask(async () =>

View file

@ -7,6 +7,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:resx="clr-namespace:ServiceLib.Resx;assembly=ServiceLib" xmlns:resx="clr-namespace:ServiceLib.Resx;assembly=ServiceLib"
xmlns:vms="clr-namespace:ServiceLib.ViewModels;assembly=ServiceLib" xmlns:vms="clr-namespace:ServiceLib.ViewModels;assembly=ServiceLib"
x:Name="Root"
d:DesignHeight="450" d:DesignHeight="450"
d:DesignWidth="800" d:DesignWidth="800"
x:DataType="vms:ProfilesViewModel" x:DataType="vms:ProfilesViewModel"
@ -141,19 +142,18 @@
InputGesture="Ctrl+T" /> InputGesture="Ctrl+T" />
<MenuItem x:Name="menuSortServerResult" Header="{x:Static resx:ResUI.menuSortServerResult}" /> <MenuItem x:Name="menuSortServerResult" Header="{x:Static resx:ResUI.menuSortServerResult}" />
<Separator /> <Separator />
<MenuItem x:Name="menuMoveToGroup" Header="{x:Static resx:ResUI.menuMoveToGroup}"> <MenuItem
<MenuItem> x:Name="menuMoveToGroup"
<MenuItem.Header> Header="{x:Static resx:ResUI.menuMoveToGroup}"
<DockPanel> ItemsSource="{Binding DataContext.SubItems, ElementName=Root}">
<ComboBox <MenuItem.ItemTemplate>
x:Name="cmbMoveToGroup" <DataTemplate>
Width="200" <MenuItem
DisplayMemberBinding="{Binding Remarks}" Command="{Binding DataContext.MoveToGroupCmd, ElementName=Root}"
ItemsSource="{Binding SubItems}" CommandParameter="{Binding}"
ToolTip.Tip="{x:Static resx:ResUI.menuSubscription}" /> Header="{Binding Remarks}" />
</DockPanel> </DataTemplate>
</MenuItem.Header> </MenuItem.ItemTemplate>
</MenuItem>
</MenuItem> </MenuItem>
<MenuItem Header="{x:Static resx:ResUI.menuMoveTo}"> <MenuItem Header="{x:Static resx:ResUI.menuMoveTo}">
<MenuItem <MenuItem

View file

@ -69,7 +69,7 @@ public partial class ProfilesView : ReactiveUserControl<ProfilesViewModel>
//servers move //servers move
//this.OneWayBind(ViewModel, vm => vm.SubItems, v => v.cmbMoveToGroup.ItemsSource).DisposeWith(disposables); //this.OneWayBind(ViewModel, vm => vm.SubItems, v => v.cmbMoveToGroup.ItemsSource).DisposeWith(disposables);
this.Bind(ViewModel, vm => vm.SelectedMoveToGroup, v => v.cmbMoveToGroup.SelectedItem).DisposeWith(disposables); //this.Bind(ViewModel, vm => vm.SelectedMoveToGroup, v => v.cmbMoveToGroup.SelectedItem).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.MoveTopCmd, v => v.menuMoveTop).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.MoveTopCmd, v => v.menuMoveTop).DisposeWith(disposables);
this.BindCommand(ViewModel, vm => vm.MoveUpCmd, v => v.menuMoveUp).DisposeWith(disposables); this.BindCommand(ViewModel, vm => vm.MoveUpCmd, v => v.menuMoveUp).DisposeWith(disposables);