Если вас беспокоит только то, что вы видите ItemTemplate в действии, вы можете предоставить явные элементы, не относящиеся к пользовательскому интерфейсу, следующим образом:
<ListBox Background="Yellow" Height="100" Margin="0,0,8,0" xmlns:sys="clr-namespace:System;assembly=mscorlib">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="30">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<TextBlock Text="Channels" HorizontalAlignment="Stretch" Foreground="Black" Grid.Column="0" />
<TextBlock Text="Antenna" HorizontalAlignment="Stretch" Foreground="Black" Grid.Column="1"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<sys:String>1111111</sys:String>
<sys:String>2222222</sys:String>
<sys:String>3333333</sys:String>
</ListBox>
Примечания:
- Я удалил ItemsSource и предоставил элементы явно.
- Элементы не должны быть производными от UIElement, поэтому они должны быть шаблонными. (Элементы UIE просто рисуются, а шаблон игнорируется.)
- Я добавил системное пространство имен, чтобы можно было указывать строковые объекты.
- Я уменьшил высоту ItemTemplate, чтобы было видно более одной строки списка.
Более простое решение:
Дайте ListBox имя и удалите привязку:
<ListBox x:Name="myLB" Background="Yellow" Height="100" Margin="0,0,8,0">
Затем используйте эту строку в коде (после вызова InitializeComponent ()):
myLB.ItemsSource = new List<string> { "First", "Second", "Third" };