or
kendo.data.ObservableArray.prototype.remove = function (value) { var array = this; $.each(array, function (idx, item) { if (item !== undefined) { if (value.data.uid === item.uid) { array.splice(idx, 1); return true; } } }); }onRemove: function (e) { e.data.parent().remove(e);}{ Name: "Top Level", Collection: [ { Name: "First Child", SubCollection: [ { Name: "First Sub Child", onRemove: function (e) { e.data.parent().remove(e); } }, { Name: "Second Sub Child", onRemove: function (e) { e.data.parent().remove(e); } } ] }, { Name: "Second Child", SubCollection: [ { Name: "Third Sub Child", onRemove: function (e) { e.data.parent().remove(e); } }, { Name: "Fourth Sub Child", onRemove: function (e) { e.data.parent().remove(e); } } } ]}<div data-role="listview" data-template="tmpl-demo-first-child" data-bind="source: Collection"></div><script type="text/html" id="tmpl-demo-first-child"> <div> <h2 data-bind="text: Name"></h2> <div data-role="listView" data-template="tmpl-demo-sub-children" data-bind="source: SubCollection"></div> </div></script><script type="text/html" id="tmpl-demo-sub-children"> <div> <div style="width: 120px; float: left; text-align: center; font-size: 1.6em; vertical-align: middle;" data-bind="text: Name, click: onRemove"> </div> </div></script>