Knockout containerless binding

In ambito XAML per mostrare una lista di elementi occorre impostare il datacontext di un ItemsControl ad una IEnumerable<T>. L’ItemsControl poi rendererizza la lista in base al DataTemplate specificato nella proprietà ItemTemplate.
Per aggiungere oggetti nuovi ho sempre usato ItemTemplateSelector e/o CompositeCollection, ma la presenza di un container l’ho sempre considerata obbligatoria (correggetemi se sbaglio).

Ho considerato l’assioma valido anche in Knockout, ma non è così. Con knockout è possibile scrivere un “contenitore fittizio” tramite commenti:

<!-- ko ... -->
<!-- /ko -->

Tramite questa feature è possibile (come nel mio caso particolare) creare una tabella con un numero di colonne variabili:

<table id="classificationTable">
    <thead>
        <tr>
            <td>Rank</td>
            <td>Country</td>
            <td>Full Name</td>
            <!-- ko foreach: batteries -->     
                <td>R<span data-bind="text: $data"></span></td>
            <!-- /ko -->
            <td>TOT</td>
        </tr>
    </thead>
    <tbody data-bind="foreach: positions">
        <tr>
            <td data-bind="text: rank"></td>
            <td data-bind="text: country"></td>
            <td data-bind="text: fullname"></td>
            <!-- ko foreach: regularShots -->
                <td data-bind="text: $data"></td>
            <!-- /ko -->
            <td data-bind="text: totalRegularPoints"></td>
        </tr>
    </tbody>
</table>

,

  1. Lascia un commento

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: