首页 > 解决方案 > 如何在启动 ShowDialog 之前显示主窗口

问题描述

我有一个应用程序,在启动 myMainWindow时,我需要执行一些涉及DateTime对象的操作。有时我可以DateTime从一些数据中读取,但否则我需要询问用户输入。

对于后者,我设计了一个MyDatePicker包含Calendar控件的新简单。

我的问题是MyDatePicker对话框在出现之前MainWindow显示。自然,这发生在从MainWindow构造函数中显示对话框时。我希望MainWindow出现在 之前MyDatePicker,但是MainWindow应该在处理对话框之前阻止,因为该DateTime对象需要继续。

以下是构造函数MainWindow及其数据上下文:

public MainWindow() {
   InitializeComponent();
   DataContext = new MyContext();
}

public MyContext() {
   // some code which tries to parse a DateTime date from some data

   if (date == null) {
      MyDatePicker w = new MyDatePicker();
      w.ShowDialog();
      if (w.DialogResult == true)
         myDate = w.DateChosen;
   }

   // do stuff with date here
}

标签: c#wpfdialogwindow

解决方案


推荐阅读