Динамически добавленный элемент в стеке WPF Показывается в графическом интерфейсе, но не доступен грамматически - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть графический интерфейс Powershell, и я динамически генерирую некоторый элемент.Код ниже генерирует панель стека, а затем изображение и метку внутри панели стека.

$serverContainer= New-Object System.Windows.Controls.StackPanel
 $serverContainer.Orientation="Vertical"
 $serverContainer.Name="serverContainer"

 $serverImg = New-Object System.Windows.Controls.Image $serverImg.Source = "Some value"
 $serverImg.Name=$server
 $serverImg.Width="75"
 $serverImg.Margin="3,3,3,3"

 $serverLabel=New-Object System.Windows.Controls.Label
 $serverLabel.Content=$server
 $serverLabel.HorizontalAlignment="center"
 $serverLabel.HorizontalContentAlignment="center"

 $serverContainer.Children.Add($serverImg)
 $serverContainer.Children.Add($serverLabel)

 $serverContainer.RegisterName($serverImg.Name,"xyz")
 $serverContainer.RegisterName($serverProBarr.Name,"zxy")

Теперь проблема в том, что когда я запускаю программу, она отображает динамически добавленный элемент по назначению, что хорошо.Но кое-где еще в коде я хотел получить доступ к этим элементам, используя FindNames, но он просто возвращает мне имя, а не элемент.Также, когда я пытаюсь $ serverContainer.Children.count, я получаю 0, что означает, что в этой панели стека нет элемента, но элементы действительно отображаются в GUI.Интересно, что во время отладки я добавляю какой-либо элемент, а затем проверяю панель стека, он включает этот элемент, и я могу получить к нему доступ.похоже, что Stackpanel при создании динамического элемента должен сначала отображаться в графическом интерфейсе, прежде чем он сможет добавить дочерние элементы к свойству Children.

...