Ой, это ужасный способ сделать это:)
К счастью, в WPF есть кое-что, что существенно сократит ваш код, ItemsControl .Поскольку у вас уже есть ArrayOfItems
, что, очевидно, является IEnumerable, вы можете создать свой XAML следующим образом:
<ItemsControl ItemsSource="{Binding ArrayOfItems}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate >
<StackPanel Orientation="Vertical" HorizontalAlignment="Right" >
<TextBlock Text="myText"/>
<Image Source="path to my image" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Затем вы сможете избавиться от всего того кода, который создает элементы вручную.Элементы управления, указанные в ItemsControl.ItemTemplate
, будут повторяться для каждого элемента в вашем списке.Небо - предел этого подхода (есть буквально тысячи примеров того, как использовать этот элемент управления).