2016-06-30 4 views
0

я наткнулся на проблему, не имея возможности использовать метод окна как свойство внутри объектов инициализаторе:Используйте объект, который инициализируется в качестве параметра

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

    (window.DataContext as YesNoDialogViewModel).CloseWindowCommand = new ActionCommand(window.Close); 

Я wan't, чтобы сделать что-то вроде этого:

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?

+0

@MatteoUmili да, я понял. Спасибо за ссылку. По-видимому, это невозможно. – Mafii

ответ

1

Вы не можете поместить его в инициализатор объекта, потому что ActionCommand() использует в аргументе объект, который еще не создан - окно ->window.Close().

Смежные вопросы