Files
Archive/shadowsocks-windows/shadowsocks-csharp/Views/ForwardProxyView.xaml.cs
2024-12-31 19:31:59 +01:00

85 lines
3.4 KiB
C#

using ReactiveUI;
using Shadowsocks.ViewModels;
using System.Reactive.Disposables;
namespace Shadowsocks.Views
{
/// <summary>
/// Interaction logic for ForwardProxyView.xaml
/// </summary>
public partial class ForwardProxyView : ReactiveUserControl<ForwardProxyViewModel>
{
public ForwardProxyView()
{
InitializeComponent();
ViewModel = new ForwardProxyViewModel();
this.WhenActivated(disposables =>
{
this.Bind(ViewModel,
viewModel => viewModel.NoProxy,
view => view.noProxyRadioButton.IsChecked)
.DisposeWith(disposables);
this.Bind(ViewModel,
viewModel => viewModel.UseSocks5Proxy,
view => view.socks5RadioButton.IsChecked)
.DisposeWith(disposables);
this.Bind(ViewModel,
viewModel => viewModel.UseHttpProxy,
view => view.httpRadioButton.IsChecked)
.DisposeWith(disposables);
this.Bind(ViewModel,
viewModel => viewModel.Address,
view => view.addressTextBox.Text)
.DisposeWith(disposables);
this.Bind(ViewModel,
viewModel => viewModel.Port,
view => view.portTextBox.Text)
.DisposeWith(disposables);
this.Bind(ViewModel,
viewModel => viewModel.Timeout,
view => view.timeoutTextBox.Text)
.DisposeWith(disposables);
this.OneWayBind(ViewModel,
viewModel => viewModel.CanModifyDetails,
view => view.addressTextBox.IsEnabled)
.DisposeWith(disposables);
this.OneWayBind(ViewModel,
viewModel => viewModel.CanModifyDetails,
view => view.portTextBox.IsEnabled)
.DisposeWith(disposables);
this.OneWayBind(ViewModel,
viewModel => viewModel.CanModifyDetails,
view => view.timeoutTextBox.IsEnabled)
.DisposeWith(disposables);
this.Bind(ViewModel,
viewModel => viewModel.Username,
view => view.usernameTextBox.Text)
.DisposeWith(disposables);
this.Bind(ViewModel,
viewModel => viewModel.Password,
view => view.passwordTextBox.Text)
.DisposeWith(disposables);
this.OneWayBind(ViewModel,
viewModel => viewModel.UseHttpProxy,
view => view.usernameTextBox.IsEnabled)
.DisposeWith(disposables);
this.OneWayBind(ViewModel,
viewModel => viewModel.UseHttpProxy,
view => view.passwordTextBox.IsEnabled)
.DisposeWith(disposables);
this.BindCommand(ViewModel,
viewModel => viewModel.Save,
view => view.saveButton)
.DisposeWith(disposables);
this.BindCommand(ViewModel,
viewModel => viewModel.Cancel,
view => view.cancelButton)
.DisposeWith(disposables);
});
}
}
}