Пытаюсь динамически добавлять элементы в 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
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Доброго времени сутокРазбираюсь с исходником одной программы, которая распаковывает rar-файлы (NUnrar - https://nunrar
Не вычисляются переменные pozblx и pozbly которые должны представлять собой позицию блока div,после исполнения pozblx и pozbly принимают предустановленые...
Есть какой-то элегантный способ разбить значение на буквы, за тем перейти к следующему значению? У меня что-то одни костыли да ошибки получаются