Отправить 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?
Ответы
Ответ 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>