将对象添加到ObservableCollection列表对象
问题描述:
如何将一个对象添加到ObservableCollection列表对象?我有一个名为“Assest”的类,我创建了ObservableCollection Asset的列表,并且想要维护它,例如从该ObservableCollection列表添加和删除元素。现在,当我尝试将单个元素添加到ObservableCollection时,出现错误。将对象添加到ObservableCollection列表对象
这是我的代码。
private static ObservableCollection<Assest> _collection = null;
public ObservableCollection<Assest> AssestList
{
get
{
if (_collection == null)
{
_collection = new ObservableCollection<Assest>();
}
return _collection;
}
set { _collection = value; }
}
public static ObservableCollection<Assest> ToObservableCollection(List<Assest> assestList)
{
return new ObservableCollection<Assest>(assestList);
}
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
LoadData();
comboBox1.ItemsSource = AssestList;
}
private void LoadData()
{
Assest assest = new Assest() { AppID = "1", AssestName = "AppName", AppDescription = "Description" };
Assest assest2 = new Assest { AppDescription = "Des2", AppID = "2", AssestName = "hi" };
List<Assest> assList = new List<Assest> {assest, assest2};
ObservableCollection<Assest> generatedAssestList = ToObservableCollection(assList);
AssestList = generatedAssestList;
}
// Here I get an error.
public static void AddAppToObservalCollection(Assest ass)
{
_collection.Add(ass);
}
那么如何过来这种情况。感谢大家。
答
你的代码有点混乱,不清楚你为什么需要AssestList和_collection。
不过,我认为你需要
AssestList.Add(ass);
+2
您不能从静态方法调用非静态属性。 AssestList是非静态的,这就是为什么它会给你一个错误。直接添加到_collection或将AssetsList属性更改为静态。 – 2013-03-07 09:49:45
答
_collection对象仍然为空,以取代
_collection.Add(ass);
,而你打电话AssestList的消气。所以,当你使用“_collection.Add(ass);”时,它可以为null(并且,btw_collection是私人的,所以你不能从静态函数访问它)
为了避免这种情况,总是使用AssestList。
你会得到什么样的错误? “错误”没有足够的错误描述。 – Nuffin 2013-03-07 09:39:21