Powiązanie Knockout.js z wieloma Select2

Moje pytanie brzmi, kiedy kiedykolwiek wiążę mój Select2 z modelem widoku wielokrotnego z nokautem. Po wybraniu jednej z opcji dane zostaną utracone po raz drugi

KnockOutCode

$(window).load(function () {

ko.bindingHandlers.select2 = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        var obj = valueAccessor(),
            allBindings = allBindingsAccessor(),
            lookupKey = allBindings.lookupKey;
        $(element).select2(obj);
        if (lookupKey) {
            var value = ko.utils.unwrapObservable(allBindings.value);
            $(element).select2('data', ko.utils.arrayFirst(obj.data.results, function (item) {
                return item[lookupKey] === value;
            }));
        }

        ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).select2('destroy');
        });
    },
    update: function (element) {
        $(element).trigger('change');
    }
};

ko.applyBindings(new ViewModel());
function ViewModel() {
    var self = this;

    self.MetricsModel = ko.observableArray([]);

    GetMetrics();

    function GetMetrics() {
        $.ajax({
            url: '/Admin/GetMetrics',
            type: "POST",
            dataType: "json",
            success: function (returndata) {
                self.MetricsModel(returndata);
            },
            error: function () {
                alert("eRROR GET Applications");
            }
        });
    };

}
$("#application-select-metrics").select2();    
}    

Plik HTML

    <select multiple="multiple" id="application-select-metrics" class="form-control" data-bind="options: MetricsModel, optionsText: 'Metrics_Name', OptionsValue:'Metrics_ID', optionsCaption: 'Choose...', select2: {}"></select>
@*<select multiple="multiple" id="application-select-metrics" class="form-control">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
</select>*@

Zwróć uwagę, że skomentowane sekcje, tj. Zakodowane wartości, działają i pozwala mi wybrać wiele wartości, a użycie Knockout działa po raz pierwszy, otrzymuję listę wypełnioną, ale po jednokrotnym wybraniu po raz drugi dane są Stracony.

Proszę pomóż,

Dzięki,

EDYCJA: Jak wspomniano w Hanesie, edytowałem kod i wprowadziłem niestandardowe wiązanie, ale nadal nie działa, nie sądzę, aby sekcja aktualizacji powiązania niestandardowego działała poprawnie, ponieważ lista rozwijana jest wypełniana raz, ale nie jest powiązana drugi raz. Każda pomoc byłaby mile widziana.

questionAnswers(2)

yourAnswerToTheQuestion