Edit in JSFiddle

// Define a "listItem" class
function listItem(name, artType, artSize) {
    return {
        isSelected : ko.observable(false),
        name : ko.observable(name)
    };
}

var viewModel = {
    listItem : ko.observableArray([new listItem("item #1"), new listItem("item #2"), new listItem("item #3")]),
    allSelected: ko.observable(false),
    selectAll : function() {
        var all = this.allSelected();
        ko.utils.arrayForEach(this.listItem(), function(listItem) {
           listItem.isSelected(!all); 
        });
        return true;
    }       
};

ko.applyBindings(viewModel);
<input type="checkbox" data-bind="click: selectAll, checked: allSelected" /> Check All
<ul data-bind="template: { name: 'liTemplate', foreach: listItem }"></ul>

<script id="liTemplate" type="text/html">
    <li>
        <input type="checkbox" data-bind="checked: isSelected" />
        <span data-bind="text: name"></span>
    </li>
</script>
td { vertical-align: top; padding: 5px; }
body{ padding: 5px; }

External resources loaded into this fiddle: