Как я могу получить доступ к корневому DataContext в DataTemplate в WPF?

Вы можете сделать

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; 
9
задан Inferis 10 March 2009 в 15:23
поделиться

2 ответа

Возможно, попробуйте

Window Name="TheWindow"
...
ListBox.ItemsSource = {Binding DataContext.Supports, ElementName=TheWindow}
14
ответ дан 4 December 2019 в 13:49
поделиться

Это должно работать способ, которым Вы описываете. Только вещью, я вижу Ваш DataTemplate, не является ItemTemplate. Необходимо также посмотреть на окно вывода для наблюдения, где привязка перестала работать.

0
ответ дан 4 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: