Событие изменения флажка Knockout отправляет старое значение

У меня проблема с нокаутом "флажок" связывание. Кажется, что "изменить" событие в флажке возвращает старое значение, прежде чем оно будет обновлено (поэтому, если оно не было проверено, оно вернет false). Я не думаю, что могу подписаться на значение, поскольку оно у меня внутри объекта.

<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>

Таким образом, в этом примере у меня есть флажок ShowOpened, который может вызвать метод CategoryChange, который изменит переменную внутри объекта (что мне нужно позже, чтобы узнать, какой объект обновляется). Но когда chechbox изменяется, он всегда отправляет старое значение, вызывая метод, а затем изменяет значение. Есть ли способ это исправить?

Ответы на вопрос(3)

Ваш ответ на вопрос