使用正在初始化的对象作为参数

本文关键字:对象 参数 初始化 | 更新日期: 2023-09-27 17:53:14

我偶然发现了不能在对象初始化器中使用windows方法作为属性的问题:

  var window = new DialogWindow
  {
    DataContext = new YesNoDialogViewModel()
    {
      DialogMessage = confirmation.Content as string,
      DialogTitle = confirmation.Title,
    }
  };
  (window.DataContext as YesNoDialogViewModel).CloseWindowCommand = new ActionCommand(window.Close);

我不想做这样的事情:

var window = new DialogWindow
  {
    DataContext = new YesNoDialogViewModel()
    {
      DialogMessage = confirmation.Content as string,
      DialogTitle = confirmation.Title,
      CloseWindowCommand = new ActionCommand(window.Close)
    }
  };

然而,我似乎不能弄清楚(new ActionCommand(window.Close)不能编译,不能在声明之前使用窗口)。

是否有任何hack或解决方法来添加引用到void ?

使用正在初始化的对象作为参数

你不能把它放在对象初始化器中,因为ActionCommand()在参数中使用了尚未创建的对象- window -> window.Close()