Windows phone 7 ObservableCollection未更新listview
我有一个在自定义列表框中查看的ObservableCollection。我需要列表框根据应用的更改更新视图,例如插入新提要或从ObservableCollection中删除提要 下面提供了部分代码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() {
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
implementINotifyPropertyChanged