Динамическое добавление элементов. Не добавляются элементы на странице
В общем, пытаюсь реализовать, что при переходе на страницу услуг, они должны выводится в StackPanel, каждой услуге свой StackPanel с определённой разметкой. Суть такая что при запуске программы и переходе на страницу, страница просто пустая, хотя метод запускается и всё проходит.
Вот метод, который призывается после инициализации.
private void GenerateList()
{
foreach (Service service in AvtoService.Service.ToList())
{
//Создание StackPanel которая будет являтся оболочкой для карточки услуги
StackPanel stackPanel = new StackPanel()
{
HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Top,
Margin = new Thickness(10)
};
//Добавление созданного StackPanel на Grid
MainServicesGrid.Children.Add(stackPanel);
//Создание внутреннего Grid'а
Grid gridIn = new Grid();
//Объявление строк и столбцов для Grid'а
ColumnDefinition gridCol1 = new ColumnDefinition()
{
Width = new GridLength(2, GridUnitType.Star),
};
ColumnDefinition gridCol2 = new ColumnDefinition()
{
Width = new GridLength(3, GridUnitType.Star),
};
ColumnDefinition gridCol3 = new ColumnDefinition()
{
Width = new GridLength(3, GridUnitType.Star),
};
RowDefinition gridRow1 = new RowDefinition();
RowDefinition gridRow2 = new RowDefinition();
RowDefinition gridRow3 = new RowDefinition();
RowDefinition gridRow4 = new RowDefinition();
//Добавление объявленных строк и столбцов во внутренний Grid
gridIn.ColumnDefinitions.Add(gridCol1);
gridIn.ColumnDefinitions.Add(gridCol2);
gridIn.ColumnDefinitions.Add(gridCol3);
gridIn.RowDefinitions.Add(gridRow1);
gridIn.RowDefinitions.Add(gridRow2);
gridIn.RowDefinitions.Add(gridRow3);
gridIn.RowDefinitions.Add(gridRow4);
//Добавление внутреннего Grid'а в StackPanel
stackPanel.Children.Add(gridIn);
//Инициализация изображения для ImageSource
BitmapImage BtmpImg = new BitmapImage();
BtmpImg.UriSource = new Uri(service.MainImagePath,UriKind.Relative);
//Создание элемента Image
Image image = new Image()
{
Source = BtmpImg,
Margin = new Thickness(5),
};
//Привязка изображения к Grid
image.SetValue(Grid.RowSpanProperty, 4);
image.SetValue(Grid.ColumnProperty, 0);
stackPanel.Children.Add(image);
}
MainServicesGrid это x:Name грида на форме в XAML.
Тут метод вызывается
public partial class ServicesPage : Page
{
AvtoServiceEntities AvtoService;
public ServicesPage(bool IsUserAdmin)
{
AvtoService = new AvtoServiceEntities();
InitializeComponent();
GenerateList();
}
Нужно снова натыкать носом в ошибки, и подсказать почему не выводятся элементы. Пробовал по-всякому и на события инициализации и loaded назначать и ставить генерацию вне метода. Страницы вызываются во Frame который находится на главном окне.