У меня есть следующий код в моем App.xaml.cs
private void App_Start(object sender, StartupEventArgs e)
{
if ( CompletedInstall())
{
//using show to allow for pacifier if loading is slow
var manager = new WINServiceConfig();
MainWindow = manager;
manager.ShowDialog();
}
}
private bool CompletedInstall()
{
var window = new Initialize();
window.ShowDialog();
return window.DoLaunchManager;
}
и следующий в App.xaml
<Application x:Class="Manager.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="App_Start">
Когда я комментирую строку, которая проверяет CompletedInstall () менеджер . ShowDialog () работает нормально, и мое окно конфигурации показывает.Когда CompletedInstall () вызывается, вызов manager.ShowDialog () сразу возвращается без отображения окна.Я добавил главное окно, предполагая, что где-то в строке кто-то решил, что приложение должно показывать только одно окно.
Я нашел обходной путь, установив главное окно перед вызовом CompletedInstall
private void App_Start(object sender, StartupEventArgs e)
{
var manager = new WINServiceConfig();
MainWindow = manager;
if (CompletedInstall())
{
manager.ShowDialog();
}
но это вынуждает меня разрабатывать WINServiceConfig (в частности, конструктор) на основе его использования, поскольку он не может рассчитывать на выполнение предварительных условий.Это плохая форма.Что еще я могу сделать, чтобы обойти эту проблему?
Пустышка?Это не может быть лучшим ответом.Может ли это ??