Подтвердить что ты не робот

Отправить boolean как параметр Action в Caliburn Micro

Это мой XAML View (некоторый код опущен для удобочитаемости):

<Window ... xmlns:c="http://www.caliburnproject.org">
  <Button Content="Close without saving" c:Message.Attach="Close(false)" />
  <Button Content="Save and Close" c:Message.Attach="Close(true)" />
</Window>
И вот код в ViewModel:
public void Close(bool save) 
{
  if (save) 
  { 
    // save the data 
  }
  TryClose();
}
Это не работает - конечно, потому что параметры действия "true" и "false" не являются объектами или объектными свойствами в XAML. Как я могу выполнить эту работу и отправить логическое значение в качестве параметра Action в Caliburn Micro?
4b9b3361

Ответ 1

Если вы поместите одинарные кавычки вокруг имени параметра, он будет правильно конвертировать для вас.

<Button Content="Close without saving"
        c:Message.Attach="Close('false')" />
<Button Content="Save and Close"
        c:Message.Attach="Close('true')" />

Ответ 2

Вы можете попробовать использовать интерактивные + триггеры:

<i:Interaction.Triggers>
            <i:EventTrigger  EventName="Click">
                <cl:ActionMessage  MethodName="MyMethod" >
                    <cl:Parameter Value="True">

                    </cl:Parameter>
                </cl:ActionMessage>
            </i:EventTrigger>
        </i:Interaction.Triggers>