Вы можете установить простой шаблон ListBox, например, так:
<ListBox Grid.Row="1" x:Name="DailyWeatherListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<!--Insert XAML for One Item-->
<Label Content="{Binding}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBoxItem>Item 1</ListBoxItem>
<ListBoxItem>Item 2</ListBoxItem>
</ListBox>
В большинстве сценариев реального мира, где для каждого элемента отображается более одного раза, вы определяете, как вы хотите, чтобы ваши данныеотображаться через DataTemplate
.Например, если бы я хотел отобразить как высокую, так и низкую температуру и стилизовать их по отдельности: сначала я бы создал модель DailyWeather
в c # и создал для нее DataTemplate
, например:
public class DailyWeather
{
public int High { get; set; }
public int Low { get; set; }
// You Would Add All Your Other Data You Want to Display Here
}
В ресурсах вашей страницы (или в другом словаре ресурсов, как в App.xaml):
<Window.Resources>
<DataTemplate DataType="{x:Type DailyWeather}">
<Grid>
<StackPanel>
<Label FontSize="18" Content="{Binding High}"/>
<Label FontSize="14" Content="{Binding Low}"/>
</StackPanel>
</Grid>
</DataTemplate>
</Window.Resources>
На вашем ListBox
не требуется ItemTemplate
...
<ListBox Grid.Row="1" x:Name="DailyWeatherListBox"/>
... потому что, как только вы установите для источника значение List<DailyWeather>
(или сделаете привязку, как предполагает ответ Сиима Хааса), ваша программа найдет DataTemplate
, который мы определили для объекта DailyWeather
, который мы включили в ресурсы.