List 在Windows phone 7中更改列表框的选定项
我需要从包含类对象的列表框中选择一个项。这是我的密码: 加载事件:List 在Windows phone 7中更改列表框的选定项,list,windows-phone-7,listbox,selecteditem,List,Windows Phone 7,Listbox,Selecteditem,我需要从包含类对象的列表框中选择一个项。这是我的密码: 加载事件: private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { XDocument loadedData = XDocument.Load("file.xml"); var data = from query in loadedData.Descendants("element")
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
XDocument loadedData = XDocument.Load("file.xml");
var data = from query in loadedData.Descendants("element")
select new myClass
{
First = (string)query.Element("first"),
Second = (string) query.Element("second")
};
List<myClass> d = data.ToList<myClass>();
myList = d;
myListBox.ItemsSource = data;
}
我在这里做错了什么吗?为了提高效率,我会将ItemsSource设置为“d”,而不是“data”。linq查询返回的枚举是惰性的,因此每次UI更新时都会对其进行计算。您所拥有的阵列是急切创建的,因此以后的查找速度很快 这里看起来像个小虫子。我能够不停地重复一个类似的问题 我将标准VS模板用于数据绑定应用程序。该模板附带一些示例数据和一个填充的列表框。我添加了一个按钮,将所选项目设置为集合中的第15个项目。这一切如期而至。但是,当我将列表滚动到顶部时,当我单击按钮时,它不会返回到第15条记录。猜猜看,你遇到的是同一问题的另一个症状 为了解决这个问题,我首先将SelectedIndex设置为-1,这实际上是取消选择该项
private void button1_Click(object sender, RoutedEventArgs e)
{
myListBox.SelectedIndex = -1;
myListBox.SelectedItem = myList[100];
}
我很好奇这是否也能解决你的问题 myList不是您绑定到列表的集合。
或者将d设置为范围更广的变量,并参考按钮1中的变量
或
将数据存储在myList中,而不是其副本
private void button1_Click(object sender, RoutedEventArgs e)
{
myListBox.SelectedIndex = -1;
myListBox.SelectedItem = myList[100];
}