Listview的使用

        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 });
        }

 

转载于:https://www.cnblogs.com/zhuzhenyu/archive/2012/12/03/2799643.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值