コード例 #1
0
ファイル: MainViewModel.cs プロジェクト: Visic/NotepadSharp
        private void AddOrSelectDocumentButton(string filePath)
        {
            ISelectableButtonViewModel button;

            if (!_buttonLookup.TryGetValue(filePath, out button))
            {
                var vm = new Lazy <DocumentViewModel>(() => NewVm(
                                                          new DocumentViewModel(
                                                              filePath,
                                                              (oldPath, newPath) => {
                    _buttonLookup.Remove(oldPath);
                    _buttonLookup[newPath] = button;
                    filePath = newPath;
                }
                                                              )
                                                          ));

                var cmd = new RelayCommand(x => TopPanelContent.Value = vm.Value);

                var closeCmd = new RelayCommand(x => {
                    if (_currentViewModels.Count(y => y is DocumentViewModel) == 1)
                    {
                        NewDocument();
                    }
                    CloseTopTab(filePath, vm.Value, vm.Value.Close);
                });

                _buttonLookup[filePath] = button = new FileTabButtonViewModel(cmd, closeCmd, vm.Value);
                TopTabs.Add(button);
            }
            button.IsSelected.Value = true;
        }
コード例 #2
0
ファイル: MainViewModel.cs プロジェクト: Visic/NotepadSharp
        private void AddOrSelectTopPanelButton(string text, Func <ViewModelBase> vmGenerator)
        {
            ISelectableButtonViewModel button;

            if (!_buttonLookup.TryGetValue(text, out button))
            {
                var vm       = new Lazy <ViewModelBase>(() => NewVm(vmGenerator()));
                var cmd      = new RelayCommand(x => TopPanelContent.Value = vm.Value);
                var closeCmd = new RelayCommand(x => CloseTopTab(text, vm.Value));
                _buttonLookup[text] = button = new SelectableCloseableButtonViewModel(text, cmd, closeCmd);
                TopTabs.Add(button);
            }
            button.IsSelected.Value = true;
        }