GTK # TreeView сортировка и обновление строк - PullRequest
1 голос
/ 10 февраля 2020

Я новичок в GTK #, просто делаю свои первые шаги здесь ... Теперь работаю с TreeView GTK. Уже прочитали этот урок: https://www.mono-project.com/docs/gui/gtksharp/widgets/treeview-tutorial/ и сделайте все, что мне нужно (добавление данных из моего собственного класса, сортировка столбцов с помощью функций сортировки)

Но , в соответствии с Заголовок - у меня 2 вопроса:

  1. Мне нужно обновить sh древовидную форму с новыми данными. И я не хочу «терять» прокрутку и выделение. Так что самый простой способ очистить списки и заполнить новыми данными не работает для меня (я теряю прокрутку). Мне нужно обновить строки. Я уже научился получать значения из TreeView.Model (это как мой класс) - Вопрос в том, как я могу обновить Iters.

  2. Есть ли способ отключить 3-й столбец сортировка позиции "по умолчанию". Когда я нажимаю на столбец, я вижу A cc, Des c, режимы, а затем некоторую трехмерную позицию (без сортировки стрелок). Теперь я делаю это таким образом (помните режим сортировки и столбец, и после refre sh я выбираю сохраненный режим и столбец):

        void Sortable_SortColumnChanged(object sender, EventArgs e)
        {
            int a;
            SortType b;
            sortable.GetSortColumnId(out a, out b);

            if (a == -1)
            {

                if (default_sort_type == SortType.Ascending) default_sort_type = SortType.Descending;
                else default_sort_type = SortType.Ascending;
                sortable.SetSortColumnId(default_column, default_sort_type);
            }
            else
            {
                default_column = a;
                default_sort_type = b;
            }


        }

Но я думаю, что есть лучший способ ...

...