### Method

# Gtk ListBoxbind_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`

  Type: `GObject`

  The `GListModel` to be bound to `box`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`create_widget_func`

  Type: `GtkListBoxCreateWidgetFunc`

  A function that creates widgets for items or `NULL` in case you also passed `NULL` as `model`.

  The argument can be `NULL`.

`user_data`

  Type: `gpointer`

  User data passed to `create_widget_func`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`user_data_free_func`

  Type: `GDestroyNotify`

  Function for freeing `user_data`.