Beispiel #1
0
        public RFC3489View(RFC3489ViewModel viewModel)
        {
            InitializeComponent();
            ViewModel = viewModel;

            this.WhenActivated(d =>
            {
                this.OneWayBind(ViewModel,
                                vm => vm.Result3489.NatType,
                                v => v.NatTypeTextBox.Text,
                                type => type.ToString()
                                )
                .DisposeWith(d);

                this.Bind(ViewModel,
                          vm => vm.Result3489.LocalEndPoint,
                          v => v.LocalEndTextBox.Text,
                          ipe => ipe is null ? string.Empty : ipe.ToString(),
                          NetUtils.ParseEndpoint
                          )
                .DisposeWith(d);

                this.OneWayBind(ViewModel,
                                vm => vm.Result3489.PublicEndPoint,
                                v => v.PublicEndTextBox.Text,
                                ipe => ipe is null ? string.Empty : ipe.ToString()
                                )
                .DisposeWith(d);

                this.BindCommand(ViewModel, vm => vm.TestClassicNatType, v => v.TestButton).DisposeWith(d);

                this.Events()
                .KeyDown
                .Where(x => x.Key == Key.Enter && TestButton.Command.CanExecute(default))
        public MainWindow(MainWindowViewModel viewModel,
                          RFC5780ViewModel rfc5780ViewModel,
                          RFC3489ViewModel rfc3489ViewModel,
                          SettingViewModel settingViewModel
                          )
        {
            InitializeComponent();
            ViewModel = viewModel;
            ThemeManager.Current.ApplicationTheme = null;

            this.WhenActivated(d =>
            {
                #region Server

                this.Bind(ViewModel,
                          vm => vm.Config.StunServer,
                          v => v.ServersComboBox.Text
                          ).DisposeWith(d);

                this.OneWayBind(ViewModel,
                                vm => vm.StunServers,
                                v => v.ServersComboBox.ItemsSource
                                ).DisposeWith(d);

                #endregion

                this.Bind(ViewModel, vm => vm.Router, v => v.RoutedViewHost.Router).DisposeWith(d);
                Observable.FromEventPattern <NavigationViewSelectionChangedEventArgs>(NavigationView, nameof(NavigationView.SelectionChanged))
                .Subscribe(args =>
                {
                    if (args.EventArgs.IsSettingsSelected)
                    {
                        ViewModel.Router.Navigate.Execute(settingViewModel);
                        return;
                    }

                    if (args.EventArgs.SelectedItem is not NavigationViewItem {
                        Tag: string tag
                    })
                    {
                        return;
                    }

                    switch (tag)
                    {
                    case @"1":
                        {
                            ViewModel.Router.Navigate.Execute(rfc5780ViewModel);
                            break;
                        }

                    case @"2":
                        {
                            ViewModel.Router.Navigate.Execute(rfc3489ViewModel);
                            break;
                        }
                    }
                }).DisposeWith(d);
                NavigationView.SelectedItem = NavigationView.MenuItems.OfType <NavigationViewItem>().First();
            });
Beispiel #3
0
        public RFC3489View(RFC3489ViewModel viewModel)
        {
            InitializeComponent();
            ViewModel = viewModel;

            this.WhenActivated(d =>
            {
                this.OneWayBind(ViewModel, vm => vm.Result3489.NatType, v => v.NatTypeTextBox.Text).DisposeWith(d);

                this.Bind(ViewModel, vm => vm.Result3489.LocalEndPoint, v => v.LocalEndTextBox.Text).DisposeWith(d);

                this.OneWayBind(ViewModel, vm => vm.Result3489.PublicEndPoint, v => v.PublicEndTextBox.Text).DisposeWith(d);

                this.BindCommand(ViewModel, vm => vm.TestClassicNatType, v => v.TestButton).DisposeWith(d);

                this.Events().KeyDown
                .Where(x => x.Key == Key.Enter && TestButton.Command.CanExecute(default))