【发布时间】:2013-08-02 12:32:52
【问题描述】:
public class Alpha
{
public ObservableCollection<Beta> Items { get; set; }
public Alpha()
{
Items = new ObservableCollection<Beta>();
}
public void DoSomething()
{
Items = GetNewItems(); // whenever I do this, Items gets a new referene,
// so every WPF binding (e.g. datagrids) are broken
}
public ObservableCollection<Beta> GetNewItems()
{
var ret = new ObservableCollection<Beta>();
// some logic for getting some items from somewhere, and populating ret
return ret;
}
}
如何将Items的全部内容替换为GetNewItems()的返回值而没有:
打破绑定。
必须循环遍历项目并将它们一一复制到另一个集合?
【问题讨论】:
-
嘿@user2270404,这是在 .NET 4.5 中完成的吗?
-
@The Red Lou:不,它是在 4.0 中完成的
-
好吧,我只是想让您知道,如果您愿意看一下,我会根据反馈更新我的答案。我找到了一些其他的方法来完成它并做了例子,但是第三种需要.NET 4.5。
-
@The Red Lou:很好,谢谢!
标签: c# wpf binding observablecollection