knockoutjs ObservableArrays y función de clasificación: la interfaz de usuario no se actualiza

En mi modelo de vista, tengo un knockoutjs ObserableArray. Justo después de que inicialicé el ViewModel, vincula los datos correctamente. Entonces, lo que tengo que hacer es ordenar la colección.

<code>$.each(vm.searchResults(), function (i, property) {
    console.log(property.Name());
});

vm.searchResults().sort(function (a, b) {
    return a.Name().toLowerCase() > b.Name().toLowerCase() ? 1 : -1;
});

$.each(vm.searchResults(), function (i, property) {
    console.log(property.Name());
});
</code>

Como puede ver, envío el Nombre del elemento a la consola para ver el orden antes y después de la clasificación. La clasificación funciona bien. El problema es con la actualización de la interfaz de usuario. De alguna manera, la interfaz de usuario no se actualiza.

Luego, intente eliminar un registro de la matriz con el siguiente código para ver si la IU responderá a eso o no:

<code>vm.searchResults().shift();
</code>

La interfaz de usuario se mantiene igual y no se actualizó de nuevo. ¿Cuál sería el problema aquí?

Editar:

Aquí hay un caso de muestra también:http://jsfiddle.net/tugberk/KLpwP/

El mismo problema aquí también.

Editar:

Resolví el problema como se muestra en esta muestra:http://jsfiddle.net/tugberk/KLpwP/16/ Pero todavía no estoy seguro de por qué funcionó como lo intenté al principio.

Respuestas a la pregunta(1)

Su respuesta a la pregunta