knockout marque / desmarque todos los cuadros combinados

Estoy usando knockout para mapear el objeto JSON al control del usuario, tengo una lista de casillas de verificación individuales, se ven como

 <input type="checkbox" data-bind="checked: IsEnabled1" />

Tengo JsonObject

 var viewModel = {
            IsEnabled1 :ko.observable(true),            
            IsEnabled2 :ko.observable(true),
            IsEnabled3 :ko.observable(false)
        };
  ...
  ko.applyBindings(viewModel);

Y quiero agregar una casilla de verificación global que marcará / desmarcará todas las demás, realicé estos cambios en el lado de JavaScript pero la parte de la interfaz de usuario de actualización de la casilla de verificación global, pero los datos de las casillas de verificación separadas no se asignan al objeto JSON.

Casilla de verificación global

  $("#GeneralTable thead tr th:first input:checkbox").click(function () {
            var checkedStatus = this.checked;
            $("#GeneralTable tbody tr td:first-child input:checkbox").each(function () {
                this.checked = checkedStatus;                    
            });

        });

después de este código, mi objeto JSON contiene datos que no están relacionados con la interfaz de usuario.

¿Cómo actualizar todas las casillas de verificación JSON después del cambio desde el lado JS?

Respuestas a la pregunta(4)

Su respuesta a la pregunta