private void ViewModel_OnPropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            SubjectAttachmentsViewModelBase viewModel = viewModelGetter();

            if (e.PropertyName == nameof(SubjectNotesViewModel.IsDetailing))
            {
                if (viewModel.IsDetailing)
                {
                    CancelDetailing(false);

                    Border border = CreatePopupBorder(DetailedAttachTag);
                    border.Child = AttachmentPanelResolver.GetDetailedAttachmentPanelView(viewModel.DetailedAttachmentDecorator);
                    var detailedView = (IDetailedAttachnemtView)border.Child;
                    detailedViewStack.Push(detailedView);
                    detailedView.EventCancelRequest += DetailedAttachmentView_OnCancelRequest;

                    AddPopupBorderToRoot(border);

                    delayedFocuser.RequestDelayedEvent();
                }
                else
                {
                    CancelDetailing(true);
                    var removedView = detailedViewStack.Pop();
                    if (detailedViewStack.Any())
                    {
                        viewModel.CommandOpenDetails.Execute(null);
                    }
                }
            }
        }
        public void BeginAddNewAttachment()
        {
            TModel model = CreateNewAttachment();

            var newAttachView = new CreateAttachmentView
            {
                SpecificContentTemplate = AttachmentPanelResolver.CreateNew_GetSpecificContentTemplate(viewModelGetter())
            };

            newAttachView.DataContext = viewModelCreator(model);

            newAttachView.IsVisibleChanged += NewAttachView_OnIsVisibleChanged;

            newAttachView.EventCancelRequest += NewAttachViewOnCancelRequest;
            Border border = CreatePopupBorder(NewAttachTag);

            border.Child = newAttachView;

            AddPopupBorderToRoot(border);

            isAddingNewSetter(true);
        }