Windows phone 7 如何使用wp7中的可观察集合绑定列表框项?

Windows phone 7 如何使用wp7中的可观察集合绑定列表框项?,windows-phone-7,Windows Phone 7,我的代码: ObservableCollection<SampleCheckedData> interestrates = new ObservableCollection<SampleCheckedData>(); XDocument xmlDocu = XDocument.Load(new MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(result))); interest

我的代码:

 ObservableCollection<SampleCheckedData> interestrates = new ObservableCollection<SampleCheckedData>();
 XDocument xmlDocu = XDocument.Load(new MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(result)));

                interestrates = (from rts in xmlDocu.Descendants("Friend")

                                 select new SampleCheckedData
                                 {

                                     Id = (string)rts.Element("userid"),
                                     Name = (string)rts.Element("name"),
                                     Icon = (string)rts.Element("imageurl"),
                                     VisibleStatus = (string)rts.Element("visiblestatus"),
                                     AppStatus = (string)rts.Element("loginstatus"),

                                     imgBubble =bitmapRed,
                                 }).ToList<SampleCheckedData>();
observetecollection interestrates=新的observetecollection();
XDocument xmlDocu=XDocument.Load(新的MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(result));
利息=(来自xmlDocu.substands(“朋友”)中的rts)
选择new SampleCheckedData
{
Id=(字符串)rts.Element(“userid”),
名称=(字符串)rts.Element(“名称”),
Icon=(字符串)rts.Element(“imageurl”),
VisibleStatus=(字符串)rts.Element(“VisibleStatus”),
AppStatus=(字符串)rts.Element(“loginstatus”),
imgbuble=bitmapRed,
}).ToList();

然后获取错误,因为无法将system.collection.generic.list隐式转换为system.collection.observablecollection。如何使用observable集合绑定listbox项

编辑:

按钮b=发送方作为按钮;
var res=interestrates.Where(a=>a.Id.Equals(((System.Windows.FrameworkElement)(e.OriginalSource)).Tag)).ToList();
如果(res.Count==1)
删除(res.First());
利率=新的可观察集合();
lstfriendrequest.ItemsSource=“”;
bindGetFriends();

此处已成功从列表中删除项目,但在调用bindGetFriends()以新绑定项目后,我不会获取新项目,而是获取旧项目。为什么服务返回旧项目列表?

将可观察的集合更改为列表

List<SampleCheckedData> interestrates = new List<SampleCheckedData>();
List interestrates=new List();
您还可以将列表绑定到ListBox,而不是ObservableCollection

要解决从列表框中删除所选项目的其他问题,请尝试以下代码:

 var selectedIndex = listbox.SelectedIndex;
 var listItems = listbox.ItemsSource as List<SampleCheckedData>;
 listItems.RemoveAt(selectedIndex);
 listbox.ItemsSource = null;
 listbox.ItemsSource = listItems;
var selectedIndex=listbox.selectedIndex;
var listItems=listbox.ItemsSource作为列表;
listItems.RemoveAt(selectedIndex);
listbox.ItemsSource=null;
listbox.ItemsSource=listItems;

如果您仍然面临问题,请告诉我

将您的可观察集合更改为列表

List<SampleCheckedData> interestrates = new List<SampleCheckedData>();
List interestrates=new List();
您还可以将列表绑定到ListBox,而不是ObservableCollection

要解决从列表框中删除所选项目的其他问题,请尝试以下代码:

 var selectedIndex = listbox.SelectedIndex;
 var listItems = listbox.ItemsSource as List<SampleCheckedData>;
 listItems.RemoveAt(selectedIndex);
 listbox.ItemsSource = null;
 listbox.ItemsSource = listItems;
var selectedIndex=listbox.selectedIndex;
var listItems=listbox.ItemsSource作为列表;
listItems.RemoveAt(selectedIndex);
listbox.ItemsSource=null;
listbox.ItemsSource=listItems;
如果您仍然面临问题,请告诉我使用此扩展:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

public static class Extensions
{
    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> collection)
    {
        var observableCollection = new ObservableCollection<T>();
        foreach (var item in collection) observableCollection.Add(item);
        return observableCollection;
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Collections.ObjectModel;
公共静态类扩展
{
公共静态ObservableCollection ToObservableCollection(此IEnumerable集合)
{
var observableCollection=新的observableCollection();
foreach(集合中的var项)observableCollection.Add(项);
返回可观测集合;
}
}
用法:

interestrates = (from rts in xmlDocu.Descendants("Friend") 
    select new SampleCheckedData
    {    
        Id = (string)rts.Element("userid"),
        Name = (string)rts.Element("name"),
        Icon = (string)rts.Element("imageurl"),
        VisibleStatus = (string)rts.Element("visiblestatus"),
        AppStatus = (string)rts.Element("loginstatus"),    
        imgBubble =bitmapRed,
    }).ToObservableCollection<SampleCheckedData>();
interestrates=(来自xmlDocu.substands(“朋友”)中的rts)
选择new SampleCheckedData
{    
Id=(字符串)rts.Element(“userid”),
名称=(字符串)rts.Element(“名称”),
Icon=(字符串)rts.Element(“imageurl”),
VisibleStatus=(字符串)rts.Element(“VisibleStatus”),
AppStatus=(字符串)rts.Element(“loginstatus”),
imgbuble=bitmapRed,
}).ToObservableCollection();
使用此扩展名:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

public static class Extensions
{
    public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> collection)
    {
        var observableCollection = new ObservableCollection<T>();
        foreach (var item in collection) observableCollection.Add(item);
        return observableCollection;
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Collections.ObjectModel;
公共静态类扩展
{
公共静态ObservableCollection ToObservableCollection(此IEnumerable集合)
{
var observableCollection=新的observableCollection();
foreach(集合中的var项)observableCollection.Add(项);
返回可观测集合;
}
}
用法:

interestrates = (from rts in xmlDocu.Descendants("Friend") 
    select new SampleCheckedData
    {    
        Id = (string)rts.Element("userid"),
        Name = (string)rts.Element("name"),
        Icon = (string)rts.Element("imageurl"),
        VisibleStatus = (string)rts.Element("visiblestatus"),
        AppStatus = (string)rts.Element("loginstatus"),    
        imgBubble =bitmapRed,
    }).ToObservableCollection<SampleCheckedData>();
interestrates=(来自xmlDocu.substands(“朋友”)中的rts)
选择new SampleCheckedData
{    
Id=(字符串)rts.Element(“userid”),
名称=(字符串)rts.Element(“名称”),
Icon=(字符串)rts.Element(“imageurl”),
VisibleStatus=(字符串)rts.Element(“VisibleStatus”),
AppStatus=(字符串)rts.Element(“loginstatus”),
imgbuble=bitmapRed,
}).ToObservableCollection();

通过使用listbox,当从该listbox中删除项时,listbox不会刷新。因此,使用可观察集合。如何使用可观察集合绑定listbox项?listItems.RemoveAt(selectedIndex);获取参数索引错误。获取的确切错误消息是什么?在调试过程中,尝试查找selectedIndex的值是否正确获取selectedIndex值为-1。通过使用listbox,当从该listbox中删除项时,listbox不会刷新。因此,使用可观察集合。如何使用可观察集合绑定listbox项?listItems.RemoveAt(selectedIndex);获取参数索引错误。获取的确切错误消息是什么?在调试过程中,尝试查找selectedIndex的值是否正确将selectedIndex的值设置为-1。将error设置为ToObservableCollection并不包含它的定义。我在上面添加了静态类,但将error设置为not conatin ToObservableCollection发布的代码称为“扩展方法”并且必须在您想要使用它的地方可用。确保您没有错过“使用”为什么列表框不刷新项目。请告诉我..请检查我的编辑代码。将错误设置为ToObservableCollection不包含它的定义。我在上面添加了静态类,但将错误设置为not conatin ToObservableCollection调用发布的代码