Windows phone 7 ObservableCollection未更新listview

Windows phone 7 ObservableCollection未更新listview,windows-phone-7,Windows Phone 7,我有一个在自定义列表框中查看的ObservableCollection。我需要列表框根据应用的更改更新视图,例如插入新提要或从ObservableCollection中删除提要 下面提供了部分代码 public class lbl { public ObservableCollection<feed> ModifiedItems = new ObservableCollection<feed>(); public lbl() {

我有一个在自定义列表框中查看的ObservableCollection。我需要列表框根据应用的更改更新视图,例如插入新提要或从ObservableCollection中删除提要

下面提供了部分代码

public class lbl
{
    public ObservableCollection<feed> ModifiedItems 
        = new ObservableCollection<feed>();

    public lbl()
    {
        InitializeComponent();
        listBox1.ItemsSource = ModifiedItems ;
    }

    public void update(object sender, EventArgs e)
    {
        var x = ModifiedItems.Last();
        listBox1.Items.Add(x);
    }
}

public class feed
{
    public int ID { get; set; }
    public int source_id { get; set; }
    public string title { get; set; }
    public string source_icon { get; set; }
    public string url { get; set; }
    public string pudate { get; set; }
}
公共类lbl
{
公共可观测集合修改数据集
=新的ObservableCollection();
公共图书馆(
{
初始化组件();
listBox1.ItemsSource=ModifiedItems;
}
公共无效更新(对象发送方,事件参数e)
{
var x=ModifiedItems.Last();
列表框1.Items.Add(x);
}
}
公共类提要
{
公共int ID{get;set;}
public int source_id{get;set;}
公共字符串标题{get;set;}
公共字符串源_图标{get;set;}
公共字符串url{get;set;}
公共字符串pudate{get;set;}
}
XAML


注意:这不是代码的一部分。 尝试添加项“只读集合上不支持的操作”时出错

我尝试了发布在这里的解决方案,但仍然得到了相同的错误


如果需要帮助,请提前感谢

因为您正在设置列表框的
项源
,所以您正在将
修改的数据项
集合绑定到它

这意味着您必须修改
ModifiedItems
,而不是
列表框
,以添加/删除项目,然后这些项目将相应地更新

public void update(object sender, EventArgs e)
{
    var x = ModifiedItems.Last();
    ModifiedItems.Items.Add(x);
}

我不明白你为什么要复制最后一项。但这正是您需要做的更改。

因为您正在设置列表框的
项源,所以您正在将
修改的数据项
集合绑定到它

这意味着您必须修改
ModifiedItems
,而不是
列表框
,以添加/删除项目,然后这些项目将相应地更新

public void update(object sender, EventArgs e)
{
    var x = ModifiedItems.Last();
    ModifiedItems.Items.Add(x);
}

我不明白你为什么要复制最后一项。但这就是您需要做的更改。

问题在于您的更新方法:

 public void update(object sender, EventArgs e)
 {
     var x = ModifiedItems.Last();
     listBox1.Items.Add(x);
 }
列表框的
ItemsSource
设置为
ModifiedItems
,这是一个
可观察的集合。因此,如果您在此集合中添加或删除项目,则
列表框
UI将自动更新。例如,要将新项目添加到视图中,只需执行以下操作:

ModifiedItems.Add(new feed());
这是
可观察集合的全部要点,视图可以观察到它


如果要更新现有项目,而不是添加/删除项目,则需要将
feed
实现
INotifyPropertyChanged

问题在于更新方法:

 public void update(object sender, EventArgs e)
 {
     var x = ModifiedItems.Last();
     listBox1.Items.Add(x);
 }
列表框的
ItemsSource
设置为
ModifiedItems
,这是一个
可观察的集合。因此,如果您在此集合中添加或删除项目,则
列表框
UI将自动更新。例如,要将新项目添加到视图中,只需执行以下操作:

ModifiedItems.Add(new feed());
这是
可观察集合的全部要点,视图可以观察到它

如果您正在更新现有项目,而不是添加/删除项目,则需要将
feed
implement
INotifyPropertyChanged