我无法将项目添加到方法内的Observable集合中。
以下是代码:
请帮我解决这个问题。
GetFeaturelist().AddRange(_featureListBuffer);
private ObservableCollection<Feature> GetFeaturelist()
{
return FeatureList;
}
public class ObservableCollection<T> : System.Collections.ObjectModel.ObservableCollection<T>
{
/// <summary>
/// Adds the elements of the specified collection to the end of the ObservableCollection.
/// </summary>
public void AddRange( IEnumerable<T> collection )
{
foreach( T i in collection )
{
Items.Add( i );
}
OnCollectionChanged( new NotifyCollectionChangedEventArgs( NotifyCollectionChangedAction.Reset ) );
}
}
注:
FeatureList.AddRange(_featureListBuffer);
它的工作正常但我想这样GetFeaturelist().AddRange(_featureListBuffer);
答案 0 :(得分:0)
您的代码看起来完全有效,应该可以正常工作。
我唯一能想到的是你可能有一个名字冲突:你的“ObservableCollection”与你派生的基础“ObservableCollection”完全相同。这很容易发生各种拼写错误和错误导入。
如果在您定义private ObservableCollection<Feature> GetFeaturelist()
的地方using System.Collections.ObjectModel
,那么方法签名实际上可能会认为它返回BASE o-coll而不是派生的那个,您可能想要它。在这种情况下,代码不会编译,ERRORs窗口应该清楚地说明错误。
首先,检查方法定义的站点上的使用情况。如果它们是正确的,并且代码编译正确,那么,在调用站点放置断点并检查实际使用的集合。如果您仍有问题,请使用这些数据更新您的帖子。
答案 1 :(得分:-1)
ObervableCollection
不支持AddRange()
方法。