Возможно, вы уже пробовали это, но я только что создал быстрый тест, извлекая модель представления из Screen
и переопределяя CanClose.
public class ShellViewModel : Screen
{
public override void CanClose(Action<bool> callback)
{
//if(some logic...)
callback(false); // will cancel close
}
}