Пытаюсь динамически добавлять элементы в StackPanel.
<StackPanel Name="Panel1" Grid.Column="1" Grid.Row="2" HorizontalAlignment="Left" Height="auto" Margin="0,41,0,0" VerticalAlignment="Top" Width="auto">
</StackPanel>
Вот класс, где пытаюсь добавить:
public class DynamicCreator
{
MainWindow main = new MainWindow();
public void TextBoxCreator(int n)
{
for (int i = 0; i < n; i++)
{
main.Panel1.Children.Add(new Label
{
Content = "Test"
});
}
main.UpdateLayout();
}
}
Но элементы не появляются. Что делать? Где ошибка?
Думаю, что вы добавляете не в то окно. Не создавайте новый экземпляр MainWindow, возьмите существующий.
Храни свои Label где-то в ObservableCollection:
public ObservableCollection<Label> myLabels { get; set; } = new ObservableCollection<Label>();
Делай привязку:
<ItemsControl Width="Auto" Height="Auto" ItemsSource="{Binding myLabels}"></ItemsControl>
Добавляй в коде нужные тебе Label:
myLabels.Add(...);
P.S: не забудь про DataContext: DataContext = this.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости