WPF C # Программное добавление и перемещение вкладок - PullRequest
9 голосов
/ 11 февраля 2011

В настоящее время я работаю над тем, что, вероятно, сделано во множестве примеров. Но после некоторых поисков я ничего не могу найти.

Я работаю с элементом управления вкладками WPF и пытаюсь воссоздать некоторые базовые функции (которые вы видите сейчас во всех интернет-браузерах), чтобы добавить новую вкладку, нажав вкладку «+», которая является последней из перечисленных вкладок.

У меня уже есть вкладка «+», которая добавляет новую вкладку. Моя проблема в том, что я хочу переместить вкладку «+» после новой вкладки (так что это снова вкладка «Конец») и переключить вид на новую созданную вкладку.

Я думал что-то вроде:

    void tiNewTab_Add(object sender, EventArgs e)
    {
        int idx = tabControl1.Items.Count;
        tabControl1.SelectedIndex = idx - 1;
        TabItem ti = new TabItemKPI();
        tabControl1.Items.Add(ti);
        tabControl1.Items.MoveCurrentToLast();
    }

... будет работать, но не повезло: (

Ответы [ 2 ]

10 голосов
/ 11 февраля 2011

Попробуйте что-то вроде этого:

tabControl1.Items.Insert(tabControl1.Items.Count-1,ti); 

Это будет сделано, потому что у вас всегда есть хотя бы один TabItem (+ один)

Затем выберите второй последний с помощью

tabControl1.SelectedIndex=tabControl1.Items.Count-2;
0 голосов
/ 11 февраля 2011

Не проверено, но должно работать следующее:

int idx = tabControl1.Items.Count;
tabControl1.SelectedIndex = idx - 1;
TabItem ti = new TabItem();
tabControl1.Items.Insert(tabControl1.Items.IndexOf(tabControl1.Items.Last()), ti);
...