Вы можете сделать
var n = 0;
, а затем сделать это функционально, но не очень эффективно в вашем случае . Функция выберет все элементы из вашего словаря и создаст новую коллекцию с обновленными значениями, которая затем преобразуется в словарь.
var newDict = dict2.Select(d => new Test { Number = ++n, Name = d.Value[1].Name }).ToDictionary();
Или со старым добрым циклом:
foreach(var d in dict2)
{
d.Value[0].Number = n++;
}
Как предлагается в комментарии. Если вы хотите начать с 0, используйте
n++;
, если с 1, используйте
++n;
Возможно, попробуйте
Window Name="TheWindow"
...
ListBox.ItemsSource = {Binding DataContext.Supports, ElementName=TheWindow}
Это должно работать способ, которым Вы описываете. Только вещью, я вижу Ваш DataTemplate, не является ItemTemplate. Необходимо также посмотреть на окно вывода для наблюдения, где привязка перестала работать.