Как функция-член или метод доступа могут узнать, вызывается ли она из окна наблюдения? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть свойство CanClose, которое обрабатывает вопрос "Сохранить измененный DOC?"и возвращает истину или ложь.Внутри этого свойства, если DOC был изменен, пользователя спрашивают, следует ли в любом случае закрыть, сохранить, а затем закрыть или прервать (не закрывать).Я помещаю это свойство в окно просмотра, и многие окна открываются в окне просмотра.Как понять, вызывается ли свойство окном наблюдения и, таким образом, пропустить диалог?

    private bool CanClose
    {
        get
        {
            if(IsModified)
            {
                switch(MyMessageBox.AskYesNoCancelQuestion(this, "$ProgramModifiedQuestion", DialogResult.Yes))
                {
                    case DialogResult.No:
                        return true;
                    case DialogResult.Yes:
                        _saveToolStripMenuItem.PerformClick();
                        return true;
                    default: // Cancel
                        return false;
                }
            }
            else
                return true;
        }
    }

Кстати, в этом случае я обошел проблему, просмотрев свойство IsModifiedв действительности это то, что меня интересует, но, поскольку такая ситуация может возникнуть и в других конкурсах, я бы хотел найти окончательное решение.

...