首先在xaml中创建集合是一个不可取的方法。
本方法仅作为xaml的学习。
本文略微无聊,主要是编写的东西都是老玩意。
首先是定义一个类,作为你要加载集合的模型。
结构如下
internal class Student { public string Name { get; set; } public int Age { get; set; } } internal class StudentList:List<Student> { } class StringCollect { public StudentList Students { get; set; } }
XAML中
<Window.DataContext> <local:StringCollect x:Name="c2" > <local:StringCollect.Students> <local:StudentList> <local:Student Age="18" Name="A1"/> <local:Student Age="18" Name="A2"/> <local:Student Age="18" Name="A3"/> </local:StudentList> </local:StringCollect.Students> </local:StringCollect> </Window.DataContext> <Grid> <ListBox ItemsSource="{Binding ElementName=c2,Path=Students}"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <TextBlock> <Run Text="Name:"/> <Run Text="{Binding Name}"/> </TextBlock> <TextBlock Grid.Column="1"> <Run Text="Age:"/> <Run Text="{Binding Age}"/> </TextBlock> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Grid>
截图如下
那么还有别的方法吗?
当然了,比如XAML中的X:Array关键字
比如
<ListBox > <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <TextBlock> <Run Text="Name:"/> <Run Text="{Binding Name}"/> </TextBlock> <TextBlock Grid.Column="1"> <Run Text="Age:"/> <Run Text="{Binding Age}"/> </TextBlock> </Grid> </DataTemplate> </ListBox.ItemTemplate> <ListBox.ItemsSource> <x:Array Type="{x:Type local:Student}"> <local:Student Age="18" Name="b1"/> <local:Student Age="18" Name="b2"/> <local:Student Age="18" Name="b3"/> </x:Array> </ListBox.ItemsSource> </ListBox>
我觉得在xaml创建集合是一个比较无聊的事情。