You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

ForwardProxyView.xaml.cs 3.5 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. using ReactiveUI;
  2. using Shadowsocks.WPF.ViewModels;
  3. using System.Reactive.Disposables;
  4. namespace Shadowsocks.WPF.Views
  5. {
  6. /// <summary>
  7. /// Interaction logic for ForwardProxyView.xaml
  8. /// </summary>
  9. public partial class ForwardProxyView : ReactiveUserControl<ForwardProxyViewModel>
  10. {
  11. public ForwardProxyView()
  12. {
  13. InitializeComponent();
  14. ViewModel = new ForwardProxyViewModel();
  15. this.WhenActivated(disposables =>
  16. {
  17. this.Bind(ViewModel,
  18. viewModel => viewModel.NoProxy,
  19. view => view.noProxyRadioButton.IsChecked)
  20. .DisposeWith(disposables);
  21. this.Bind(ViewModel,
  22. viewModel => viewModel.UseSocks5Proxy,
  23. view => view.socks5RadioButton.IsChecked)
  24. .DisposeWith(disposables);
  25. this.Bind(ViewModel,
  26. viewModel => viewModel.UseHttpProxy,
  27. view => view.httpRadioButton.IsChecked)
  28. .DisposeWith(disposables);
  29. this.Bind(ViewModel,
  30. viewModel => viewModel.Address,
  31. view => view.addressTextBox.Text)
  32. .DisposeWith(disposables);
  33. this.Bind(ViewModel,
  34. viewModel => viewModel.Port,
  35. view => view.portTextBox.Text)
  36. .DisposeWith(disposables);
  37. this.Bind(ViewModel,
  38. viewModel => viewModel.Timeout,
  39. view => view.timeoutTextBox.Text)
  40. .DisposeWith(disposables);
  41. this.OneWayBind(ViewModel,
  42. viewModel => viewModel.CanModifyDetails,
  43. view => view.addressTextBox.IsEnabled)
  44. .DisposeWith(disposables);
  45. this.OneWayBind(ViewModel,
  46. viewModel => viewModel.CanModifyDetails,
  47. view => view.portTextBox.IsEnabled)
  48. .DisposeWith(disposables);
  49. this.OneWayBind(ViewModel,
  50. viewModel => viewModel.CanModifyDetails,
  51. view => view.timeoutTextBox.IsEnabled)
  52. .DisposeWith(disposables);
  53. this.Bind(ViewModel,
  54. viewModel => viewModel.Username,
  55. view => view.usernameTextBox.Text)
  56. .DisposeWith(disposables);
  57. this.Bind(ViewModel,
  58. viewModel => viewModel.Password,
  59. view => view.passwordTextBox.Text)
  60. .DisposeWith(disposables);
  61. this.OneWayBind(ViewModel,
  62. viewModel => viewModel.UseHttpProxy,
  63. view => view.usernameTextBox.IsEnabled)
  64. .DisposeWith(disposables);
  65. this.OneWayBind(ViewModel,
  66. viewModel => viewModel.UseHttpProxy,
  67. view => view.passwordTextBox.IsEnabled)
  68. .DisposeWith(disposables);
  69. this.BindCommand(ViewModel,
  70. viewModel => viewModel.Save,
  71. view => view.saveButton)
  72. .DisposeWith(disposables);
  73. this.BindCommand(ViewModel,
  74. viewModel => viewModel.Cancel,
  75. view => view.cancelButton)
  76. .DisposeWith(disposables);
  77. });
  78. }
  79. }
  80. }