如何在ObservableCollection对象中添加新数据?
public class ViewModel
{
private ObservableCollection<Place> places = new ObservableCollection<Place>
{
new Place { City = "New York", Country = "USA", ID = 1},
new Place { City = "Chicago", Country = "USA", ID = 2}
};
public ObservableCollection<Place> Places
{
get { return places; }
set { places = value; }
}
places.Add(new Place { Id = 3,
City = "Miami",
Country = "USA"});
}
出于某种原因,这部分代码不起作用:
places.Add(new Place { Id = 3,
City = "Miami",
Country = "USA"});
而不是那样,我应该把它放在那里?
提前致谢!
答案 0 :(得分:0)
没有看到我只能猜到的所有代码。但Place类是否实现了INotifyPropertyChanged?如果不需要,则会通知集合发生更改并且绑定可以正确更新。
答案 1 :(得分:0)
我不知道您何时想要将新地方添加到收藏中。 但您可以在视图模型类上使用这样的方法:
function helpful(answer){
$.post("${createLink(controller: "reviews", action: "dataFromReviews")}",
{
helpful:true,
answer:answer
}
);
}
您还可以直接使用Places-property从视图模型外部添加地点。
public class ViewModel
{
...
public void AddNewPlace()
{
places.Add(new Place
{
Id = 3,
City = "Miami",
Country = "USA"
});
}
}
顺便说一句:您应该删除Places-property上的setter,因为您不应该从外部更改整个集合,因为这是视图模型的实现细节。