From d3c0f50fecfeb0aa633f35d7b4ebb1cfec4130cb Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:18:18 +0800 Subject: [PATCH] Adjustment of server binding --- v2rayN/ServiceLib/ViewModels/AddServer2ViewModel.cs | 4 ++++ v2rayN/ServiceLib/ViewModels/AddServerViewModel.cs | 4 ++++ v2rayN/v2rayN/Views/AddServer2Window.xaml.cs | 2 +- v2rayN/v2rayN/Views/AddServerWindow.xaml.cs | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/v2rayN/ServiceLib/ViewModels/AddServer2ViewModel.cs b/v2rayN/ServiceLib/ViewModels/AddServer2ViewModel.cs index f313e79c..e98b12aa 100644 --- a/v2rayN/ServiceLib/ViewModels/AddServer2ViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/AddServer2ViewModel.cs @@ -9,6 +9,8 @@ namespace ServiceLib.ViewModels { [Reactive] public ProfileItem SelectedSource { get; set; } + [Reactive] + public string? CoreType { get; set; } public ReactiveCommand BrowseServerCmd { get; } public ReactiveCommand EditServerCmd { get; } @@ -29,6 +31,7 @@ namespace ServiceLib.ViewModels { SelectedSource = JsonUtils.DeepCopy(profileItem); } + CoreType = SelectedSource?.coreType?.ToString(); BrowseServerCmd = ReactiveCommand.CreateFromTask(async () => { @@ -60,6 +63,7 @@ namespace ServiceLib.ViewModels _noticeHandler?.Enqueue(ResUI.FillServerAddressCustom); return; } + SelectedSource.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), CoreType); if (ConfigHandler.EditCustomServer(_config, SelectedSource) == 0) { diff --git a/v2rayN/ServiceLib/ViewModels/AddServerViewModel.cs b/v2rayN/ServiceLib/ViewModels/AddServerViewModel.cs index f1dcee79..613ca69a 100644 --- a/v2rayN/ServiceLib/ViewModels/AddServerViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/AddServerViewModel.cs @@ -9,6 +9,8 @@ namespace ServiceLib.ViewModels { [Reactive] public ProfileItem SelectedSource { get; set; } + [Reactive] + public string? CoreType { get; set; } public ReactiveCommand SaveCmd { get; } @@ -30,6 +32,7 @@ namespace ServiceLib.ViewModels { SelectedSource = JsonUtils.DeepCopy(profileItem); } + CoreType = SelectedSource?.coreType?.ToString(); SaveCmd = ReactiveCommand.Create(() => { @@ -79,6 +82,7 @@ namespace ServiceLib.ViewModels return; } } + SelectedSource.coreType = (ECoreType)Enum.Parse(typeof(ECoreType), CoreType); if (ConfigHandler.AddServer(_config, SelectedSource) == 0) { diff --git a/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs b/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs index b9bdf56a..eceaeba4 100644 --- a/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs +++ b/v2rayN/v2rayN/Views/AddServer2Window.xaml.cs @@ -26,7 +26,7 @@ namespace v2rayN.Views { this.Bind(ViewModel, vm => vm.SelectedSource.remarks, v => v.txtRemarks.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.address, v => v.txtAddress.Text).DisposeWith(disposables); - this.Bind(ViewModel, vm => vm.SelectedSource.coreType, v => v.cmbCoreType.Text).DisposeWith(disposables); + this.Bind(ViewModel, vm => vm.CoreType, v => v.cmbCoreType.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.displayLog, v => v.togDisplayLog.IsChecked).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.preSocksPort, v => v.txtPreSocksPort.Text).DisposeWith(disposables); diff --git a/v2rayN/v2rayN/Views/AddServerWindow.xaml.cs b/v2rayN/v2rayN/Views/AddServerWindow.xaml.cs index f9607334..96f766b4 100644 --- a/v2rayN/v2rayN/Views/AddServerWindow.xaml.cs +++ b/v2rayN/v2rayN/Views/AddServerWindow.xaml.cs @@ -142,7 +142,7 @@ namespace v2rayN.Views this.WhenActivated(disposables => { - this.Bind(ViewModel, vm => vm.SelectedSource.coreType, v => v.cmbCoreType.Text).DisposeWith(disposables); + this.Bind(ViewModel, vm => vm.CoreType, v => v.cmbCoreType.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.remarks, v => v.txtRemarks.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.address, v => v.txtAddress.Text).DisposeWith(disposables); this.Bind(ViewModel, vm => vm.SelectedSource.port, v => v.txtPort.Text).DisposeWith(disposables);