欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

listbox 绑定数据时 卡ui解决思路

更新时间: 2014-01-05 02:38:31 责任编辑: Author_N1

 

listbox 绑定数据时 卡UI
数据是完全显示了,但是UI有点卡, 数据也就几十条。。。。
附上代码:数据模板 
 <ListBox  x:Name="listbox1">
                     <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Margin="0,0,0,10">

                                    <TextBlock Name="displayname" FontSize="35" Text="{Binding Displayname}"/>

                                    <TextBlock Name="phonenum" Text="{Binding PhoneNum}"/>

                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
</ListBox  x:Name="listbox1">

数据绑定: listbox1.ItemsSource = suoxie;//suoxie里就只有大概40多条数据。。。
--参考方法--
我明白你的意思了。。。其实,你可以做一个full list,然后按键时,做filter,这样,第一次键盘显示时,你放在onnavigatdto事件中(速度还ok)显示全部号码,然后每次按0~9时,过滤List<>,重新绑定。

试一下,我没试验过,但是测试上面的代码时,第一次的慢,会被后面的reload冲掉,提高客户的感受。没有实际数据(其实很难拿到,因为wp异步绑定的),你试一下先。
--参考方法--

 ObservableCollection<Person> plist = new ObservableCollection<Person>();
        public MainPage()
        {
            InitializeComponent();
            listbox1.DataContext = plist;
        }
        
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            ThreadPool.QueueUserWorkItem((o) =>
            {
                for (int i = 0; i < 40; i++)
                {
                    Person p = new Person();
                    p.Displayname = String.Format("姓名{0}", i + 1);
                    p.PhoneNum = String.Format("电话{0}", i + 1);
                    this.Dispatcher.BeginInvoke(new Action(() =>
                    {
                        plist.Add(p);
                    }));
                }
            });
        }
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:38:31
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/12485/
本文WWW.DOC100.NET DOC100.NET版权所有。