Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save xdenser/3420033 to your computer and use it in GitHub Desktop.
Save xdenser/3420033 to your computer and use it in GitHub Desktop.
Attempt at knockout + winrt
(function(){
var
elementKey = '__ko_vectorObservableArray';
ko.bindingHandlers.vector = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var winRTObservableVector = ko.utils.unwrapObservable(valueAccessor());
element[elementKey] = ko.observableArray(winRTObservableVector);
function wrappedValueAccessor() {
return element[elementKey];
}
winRTObservableVector.addEventListener("vectorchanged", function () {
element[elementKey].valueHasMutated();
});
return ko.bindingHandlers.foreach.init(element, wrappedValueAccessor, allBindingsAccessor, viewModel, bindingContext);
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext){
function wrappedValueAccessor() {
return element[elementKey];
}
return ko.bindingHandlers.foreach.update(element, wrappedValueAccessor, allBindingsAccessor, viewModel, bindingContext);
}
};
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment