В общем, пытаюсь реализовать, что при переходе на страницу услуг, они должны выводится в 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 который находится на главном окне.
Frame, забудьте про него! Если хотите делать изменяемый контент, то это делается совершенно иначе (и опять привет привязки). – EvgeniyZ Dec 02 '20 at 19:45textBox.Text="1"), да и конструктор использовал, что у меня все было сMargin = "900, 141, 515, 111", но я четко разграничивал UI и C#, это прям очивидные вещи. Я даже больше скажу, я тогда особо то и не знал что такое язык программирования. Да, может я такой "умный", но ведь если ввести в поисковикеwpf, то увидимОдной из важных особенностей является использование языка декларативной разметки интерфейса XAML. – EvgeniyZ Dec 02 '20 at 20:44Как динамически добавлять элементы, то я также увижу уйму примеров, которые говорят "привязки". Ок, не хотим искать... Но ведь создание UI через C# это сложно! Не уж то это не может насторожить? Я лично до сих пор вряд-ли смогу сделать через C# нормальный UI, красивый. Так что я с вами не очень прям уж в этом плане согласен, ибо тут скорей очередное создание лабораторной работы, где студенты делают на тяп ляп все, без желания разбираться. – EvgeniyZ Dec 02 '20 at 20:47!(восклицания) не только ведь показывает, что это ругань, крик или еще что, а иногда и акцентирует внимание, что "так плохо!", "не делайте так!". Это не эмоции или что-либо еще, а лишь рассуждение и акцентирование внимания, ибо порой без этого знака контент не воспринимается, увы. Уж извините, если вам показалось это криком, руганью или еще чем. А по поводу людей, увы, но за 4 года, что я здесь, только единицы перешли на привязки, другим было лень, сложно, нет времени и так далее, хотя давал подробнейшие разборы их задач. – EvgeniyZ Dec 02 '20 at 20:59