How to use DropDown with search

I want to use DorpDown to show some versions and select them, I use gtk_drop_down_set_enable_search to enable a search entry.

    const char *v_test[5] = { "1.0.3", "1.0.2", "1.0.1", "1.0.0", NULL };
    drop_version = gtk_drop_down_new_from_strings (v_test);
    gtk_drop_down_set_enable_search (GTK_DROP_DOWN (drop_version), TRUE);

But the entry only appear and don’t work fine. I see Note that GtkDropDown:expression must be set for search to work. and know maybe I miss setting something, but I can’t find other guides to tell me how to do it. So, what should I do to enable search entries properly?

Here is an example of how I tested it. In addition to the search, a sorting is also implemented.

#include"dropdown-sort.h"


void activate (GtkApplication *app, gpointer data)
{
  GtkWidget *window;

  window =gtk_application_window_new(app);
  gtk_widget_set_size_request(window,50,50);


 const char *strings[6] = {"Larry","Moe","Curly","Marry","Joe",NULL};
 GtkStringList *stringlist = gtk_string_list_new (strings);

  /*you hav to implement the GtkExpression  */
  GtkExpression *expression = gtk_property_expression_new(GTK_TYPE_STRING_OBJECT,NULL,"string");
  GtkStringSorter *string_sorter = gtk_string_sorter_new (expression);

  GtkSortListModel *sort_list_model = gtk_sort_list_model_new (G_LIST_MODEL(stringlist), GTK_SORTER(string_sorter));


  GtkWidget *dropdown= gtk_drop_down_new(G_LIST_MODEL(sort_list_model), NULL);

  // you have to set expression
  gtk_drop_down_set_expression (GTK_DROP_DOWN(dropdown),expression);

  gtk_drop_down_set_enable_search (GTK_DROP_DOWN(dropdown), TRUE);

  GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,10);

  gtk_box_append(GTK_BOX(box),dropdown);
  gtk_window_set_child(GTK_WINDOW(window),box);

 gtk_widget_set_visible(window,TRUE);
}

Enjoy testing and programming.

Thanks for you help!