Я пытаюсь выполнить итерацию через словарь и создать новый текстовый блок для каждого элемента в словаре, основываясь на конкретном свойстве в каждом объекте в словаре. Тем не менее, при повторении, он только когда-либо находит последний добавленный объект, а затем повторяет это для многих объектов в словаре. то есть у меня будет 4 текстовых блока с одинаковым текстом, если у меня есть 4 объекта. Может кто подскажет, где я иду не так? Вот мой код:Итерация через словарь не работает должным образом
foreach (KeyValuePair<string, MyObjects> entry in MyDictionary)
{
MyTextblock = new TextBlock();
MyTextblock.Margin = new Thickness(0, 5, 0, 0);
MyStackPanel.Children.Add(MyTextblock);
MyTextblock.Text = MyObjects.name;
}
Я должен добавить, что при отладке я могу видеть правильное количество объектов и свойств в словаре – Ricardinho
Вы не используете 'entry' в цикле? Должно ли это быть «entry.Value.name»? –
Для этого кода для компиляции вообще свойство 'name' должно быть статичным в классе, а это значит, что у вас нет имени для каждой записи. Все записи имеют одно и то же имя, поэтому, когда вы устанавливаете имя для последней записи, это также будет имя для всех предыдущих записей. Даже если вы используете 'entry.Value.name' вместо' MyObjects.name', имя будет по-прежнему совпадать. Для того, чтобы каждая запись имела собственное имя, вам нужно иметь нестатическое свойство. – Guffa