【问题标题】:Use object that is being initialized as parameter [duplicate]使用正在初始化的对象作为参数[重复]
【发布时间】:2016-06-30 09:08:09
【问题描述】:

我偶然发现了无法将 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) 无法编译,在声明之前无法使用窗口)。

是否有任何技巧或解决方法来添加对 void 的引用?

【问题讨论】:

  • @MatteoUmili 是的,我想。谢谢你的链接。这显然是不可能的。

标签: c# circular-reference object-initializers


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 2020-11-26
    • 2022-01-19
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多