问题描述
我有很多要以格式显示在ListView中的Integer项。 通常,在Android上,我会扩展BaseAdapter(这是动态创建View / Control的示例):
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView!=null){
//inflate convertView if it doesn't exist
}
MyView v = (MyView)convertView;
v.setId(position);
v.setNumber(myIntegerArray[position]);
return v;
}
我想知道如何在Windows应用商店的C#中执行此操作。 我找不到有关此主题的任何有意义的信息。
我不想每次都创建List(或其他ItemsSource对象),因为它会占用太多内存,而且速度很慢(我必须刷新数组值)。
1楼
基于XAML的UI技术具有称为的功能,该功能可减少处理基于项目的UI( )中呈现的大量数据时的内存消耗和处理时间。
为了做到这一点,在保持在基础数据集合中添加/删除/更改项时随时更新UI的能力的同时,您需要将UI 到 :
<ListBox ItemsSource="{Binding}"/>
后面的代码:
var numbers = Enumerable.Range(0,100);
DataContext = new ObservableCollection<int>(numbers);
请记住,基于XAML的UI技术中基于声明性 ,基于DataBinding的方法实际上不同于其他框架中的过程方法。 在XAML中,你永远需要创建程序代码UI元素, 定义他们在XAML,然后将DataBind已对UI数据项的相关集合,以及UI框架会完成剩下的工作。