コード例 #1
0
        public PageViewerCommandBar()
        {
            this.InitializeComponent();

            _showSettings     = new Subject <Unit>();
            _scrollToTop      = new Subject <Unit>();
            _printPdf         = new Subject <Unit>();
            _edit             = new Subject <Unit>();
            _search           = new Subject <Unit>();
            _showHistory      = new Subject <Unit>();
            _toggleFullscreen = new Subject <Unit>();
            _import           = new Subject <Unit>();
            _export           = new Subject <Unit>();
            _navigateToPage   = new Subject <string>();

            this.WhenActivated(disposable =>
            {
                this.OneWayBind(ViewModel,
                                vm => vm.DevOptsEnabled,
                                view => view.DevOptBtn.Visibility)
                .DisposeWith(disposable);

                SettingsBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _showSettings.OnNext(x); }).DisposeWith(disposable);

                ToTopBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _scrollToTop.OnNext(x); }).DisposeWith(disposable);

                PdfBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _printPdf.OnNext(x); }).DisposeWith(disposable);

                SearchBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _search.OnNext(x); }).DisposeWith(disposable);

                HistoryBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _showHistory.OnNext(x); }).DisposeWith(disposable);

                FullscreenBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _toggleFullscreen.OnNext(x); }).DisposeWith(disposable);

                ImportBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _import.OnNext(x); }).DisposeWith(disposable);

                ExportBtn.Events().Click
                .Select(x => Unit.Default)
                .Subscribe(x => { _export.OnNext(x); }).DisposeWith(disposable);

                EditBtn.Events().Click
                .Select(_ => Unit.Default)
                .Subscribe(x => { _edit.OnNext(Unit.Default); }).DisposeWith(disposable);

                NewPageBtn.Events().Click
                .Select(_ => Unit.Default)
                .InvokeCommand(ViewModel.NewPageClick)
                .DisposeWith(disposable);

                DevOptBtn.Events().Click
                .Select(_ => Unit.Default)
                .InvokeCommand(ViewModel.DevOptionsClick)
                .DisposeWith(disposable);

                BindTextResources(disposable);

                ShowLastVisitedPages();
            });
        }