### Method

# Gtk ListBox bind_model

#### Declaration [src]

    void
    gtk_list_box_bind_model (
      GtkListBox* box,
      GListModel* model,
      GtkListBoxCreateWidgetFunc create_widget_func,
      gpointer user_data,
      GDestroyNotify user_data_free_func
    )

#### Description [src]

Binds `model` to `box`.

If `box` was already bound to a model, that previous binding is destroyed.

The contents of `box` are cleared and then filled with widgets that represent items from `model`. `box` is updated whenever `model` changes. If `model` is `NULL`, `box` is left empty.

It is undefined to add or remove widgets directly (for example, with gtk_list_box_insert()) while `box` is bound to a model.

Note that using a model is incompatible with the filtering and sorting functionality in `GtkListBox`. When using a model, filtering and sorting should be implemented by the model.

#### Parameters

`model` | `GListModel*`
| The `GListModel` to be bound to `box`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`create_widget_func` | `GtkListBoxCreateWidgetFunc`
| A function that creates widgets for items or `NULL` in case you also passed `NULL` as `model`.
`user_data` | `gpointer`
| User data passed to `create_widget_func`.
`user_data_free_func` | `GDestroyNotify`
| Function for freeing `user_data`.