protected override void OnNavigatedTo(NavigationEventArgs e) { List<Person> list = new List<Person>(); list.Add(new Person { Name = "321", Age = 33 }); list.Add(new Person { Name = "432", Age = 12 }); list.Add(new Person { Name = "542", Age = 321 }); lv1.ItemsSource = list; }
<ListView x:Name="lv1" HorizontalAlignment="Left" Height="414" Margin="200,200,0,0"> <ListView.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Name}"></TextBlock> <TextBlock Text="{Binding Age}"></TextBlock> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView>
SelectionMode
项的选择方式,单一选择Single,多项选择Multiple,不能选择None
lv.SelectedItem-->Single
lv.SelectedItems-->Multiple
这里面选择出来的对象就是选中项的数据上下文,即Person
<ListView IsItemClickEnabled="True" SelectionMode="Multiple" x:Name="lv1" HorizontalAlignment="Left" Height="414" Margin="200,200,0,0" ItemClick="lv1_ItemClick"> <ListView.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Name}"></TextBlock> <TextBlock Text="{Binding Age}"></TextBlock> </StackPanel> </DataTemplate> </ListView.ItemTemplate> </ListView>
private void Button_Click_1(object sender, RoutedEventArgs e) { string s = ""; IList<object> ps = this.lv1.SelectedItems; foreach (Person p in ps) { s += p.Name + ""; } this.ff.Text = s; } private void lv1_ItemClick(object sender, ItemClickEventArgs e) { //首先要设定这个事件可用 var obj = e.ClickedItem as Person; this.ff.Text = obj.Name; }
这里我们需要注意,当我们加入的对象过多时,我们需要做到加载一条显示一条
这时我们需要用到ObservableCollection这个集合,他也是实现了IList接口,同时实现了INotifyCollectionChanged接口,被称作:可观察的集合
ObservableCollection<Person> list = new ObservableCollection<Person>(); public GroupedItemsPage() { this.InitializeComponent(); } protected override void OnNavigatedTo(NavigationEventArgs e) { list.Add(new Person { Name = "321", Age = 33 }); list.Add(new Person { Name = "432", Age = 12 }); list.Add(new Person { Name = "542", Age = 321 }); lv1.ItemsSource = list; } private void Button_Click_1(object sender, RoutedEventArgs e) { list.Add(new Person { Name = "321df", Age = 33 }); }