O evento de mudança da caixa de seleção de knockout envia um valor antigo

Estou tendo um problema com a ligação "marcada". Parece que o evento "change" na caixa de seleção retorna o valor antigo, antes de ser atualizado (portanto, se ele estiver desmarcado, ele retornará false). Eu não acho que posso subscrever o valor desde que eu tenha dentro do objeto.

<tbody data-bind="foreach: Categories">
                <tr>
                    <td><input type="checkbox" data-bind="checked: ShowOpened, event: { change: $root.CategoryChange }" /></td>
                </tr>
            </tbody>
<script type="text/javascript">
var Category = function (Id, Name, Order, ShowOpened) {
    this.Id = Id;
    this.Name = Name;
    this.Order = Order;
    this.ShowOpened = ShowOpened;
    this.IsUpdated = ko.observable(false);

    this.OldOrder = Order;
    this.OldShowOpened = ShowOpened;
};
var ViewModel = {
    Categories: ko.observableArray([]),
    CategoryChange: function(pCategory) {
        if(pCategory.Order != pCategory.OldOrder || pCategory.ShowOpened != pCategory.OldShowOpened)
            pCategory.IsUpdated(true);
        else
            pCategory.IsUpdated(false);
    }
};
ko.applyBindings(ViewModel);
</script>

Portanto, neste exemplo, eu tenho a caixa de seleção ShowOpened que pode acionar o método CategoryChange que irá alterar uma variável dentro do objeto (que eu preciso saber mais tarde que objeto é atualizado). Mas quando o chechbox é alterado, ele sempre envia o valor antigo, o método de acionamento e, em seguida, altera o valor. Existe alguma maneira de corrigir isso?

questionAnswers(3)

yourAnswerToTheQuestion