Главное окно WPF не отображается после выбора конфигурации в приложении MVVMC#

Место общения программистов C#
Ответить
Anonymous
 Главное окно WPF не отображается после выбора конфигурации в приложении MVVM

Сообщение Anonymous »

У меня есть минимальное приложение WPF MVVM, в котором отображается диалоговое окно выбора конфигурации.

[img]https:/ /i.sstatic.net/wjh2IQbY.png[/img]


и затем должно открыть главное окно для отображения выбранной конфигурации. Однако после выбора конфигурации главное окно не отображается.
Последовательность действий приложения должна быть следующей:
  • Показать конфигурацию Диалоговое окно выбора
  • Пользователь выбирает файл JSON
  • Пользователь нажимает «ОК».
  • Открывается главное окно с конфигурацией< /li>
В настоящее время работают шаги 1–3, но шаг 4 завершается с ошибкой — главное окно не отображается.
Соответствующий код находится в этом конкретном коммите.
Ключевые части кода:

Код: Выделить всё

// App.xaml.cs
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);

// Show config selection window first
var configWindow = new Views.ConfigSelectionWindow();
var result = configWindow.ShowDialog();

if (result == true)
{
var vm = (ViewModels.ConfigSelectionViewModel)configWindow.DataContext;
var configPath = vm.SelectedConfigPath;

if (!string.IsNullOrEmpty(configPath))
{
// Create and show main window with selected config
var mainWindow = new Views.MainWindow(configPath);
mainWindow.Show();  // Window doesn't show up after this line
}
// ...error handling
}
}
Код просто выполняется без отображения окна.
Среда:
  • Visual Studio 2019 Professional
  • .NET Framework 4.8
  • Windows 10
Что может мешать отображению главного окна? Как я могу отладить это дальше?
P.S. Проблема была решена путем правильного управления режимом выключения приложения. Установка значения OnExplicitShutdown перед отображением диалогового окна конфигурации, а затем изменение значения OnMainWindowClose после создания главного окна предотвратило преждевременное завершение работы приложения. Кроме того, исправлена ​​проблема с привязкой путем изменения привязок XAML на режим OneWay для свойств, доступных только для чтения.

Подробнее здесь: https://stackoverflow.com/questions/792 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»