using ReactiveUI; using Shadowsocks.ViewModels; using System.Reactive.Disposables; using System.Windows.Input; namespace Shadowsocks.Views { /// /// Interaction logic for ServerSharingView.xaml /// public partial class ServerSharingView : ReactiveUserControl { public ServerSharingView() { InitializeComponent(); ViewModel = new ServerSharingViewModel(); this.WhenActivated(disposables => { this.OneWayBind(ViewModel, viewModel => viewModel.SelectedServerUrlImage, view => view.qrCodeImage.Source) .DisposeWith(disposables); this.OneWayBind(ViewModel, viewModel => viewModel.Servers, view => view.serversListBox.ItemsSource) .DisposeWith(disposables); this.Bind(ViewModel, viewModel => viewModel.SelectedServer, view => view.serversListBox.SelectedItem) .DisposeWith(disposables); this.OneWayBind(ViewModel, viewModel => viewModel.SelectedServerUrl, view => view.urlTextBox.Text) .DisposeWith(disposables); this.BindCommand(ViewModel, viewModel => viewModel.CopyLink, view => view.copyLinkButton) .DisposeWith(disposables); }); } private void urlTextBox_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) { urlTextBox.SelectAll(); } } }