Я думаю, что Pentium10 хочет иметь возможность указать через конструктор, позволяет ли позднее ShowDialog фактически отображать диалог. Другими словами, он действительно хочет иметь возможность переопределить ShowDialog, чтобы в своем собственном ShowDialog он мог проверить эту магическую переменную разрешения и либо внести залог, либо вызвать базовый ShowDialog.
Я не уверен, что это технически правильно, но, похоже, оно работает. Pentium10 в своем классе Window создает другой открытый метод с именем ShowDialog, который скрывает унаследованный ShowDialog. Затем внутри проверьте вашу переменную и, только если это разрешено, вызовите базовый метод ShowDialog, например:
public partial class Window3 : Window
{
bool _allowed { get; set; }
public Window3( bool allowed)
{
_allowed = allowed;
InitializeComponent();
}
public void ShowDialog()
{
if( !_allowed)
return;
else
base.ShowDialog();
}
}