首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将元素添加到PagedCollectionView的源代码

如何将元素添加到PagedCollectionView的源代码
EN

Stack Overflow用户
提问于 2011-06-24 20:28:59
回答 2查看 2.9K关注 0票数 1

在我的Silverlight-4应用程序中,我有一个PagedCollectionView。最后,我想将一个新项目添加到它的源代码中。不幸的是,我没有找到如何做到这一点的例子。

AddNew()方法不包含任何参数。

CurrentAddItem是只读的。

SourceCollection是一个IEnumerable<>。

我没有想到,像向集合添加元素这样简单、标准的任务会如此复杂。我没有找到任何如何做到这一点的例子。谁能给我举个例子,如何在PagedCollectionView中添加元素?

提前谢谢你,

弗兰克

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-24 20:37:58

代码语言:javascript
复制
MyObject newO = (MyObject)_PagedList.AddNew(); 
newO.SetProperty="Make the changes to the object";
_PagedList.CommitNew(); 
票数 2
EN

Stack Overflow用户

发布于 2011-06-24 20:45:12

除了直接操作PagedCollectionView之外,您还可以使用MVVM来实现您的功能(这是一个很好的例子,说明了MVVM如何通过消除深入挖掘UI内部的需要来帮助简化工作)。

PagedCollectionView就是这样一个视图。应该有一个ObservableCollection来支持它。向该可观察集合添加新项将自动将其添加到视图中。这对于可能公开可观察集合的ViewModel非常有效。

代码语言:javascript
复制
public class OrdersViewModel:INotifyPropertyChanged
{
  //Probably want to initialize this in a constructor to populate the collection
  private ObservableCollection<Order> _orders= new ObservableCollection<Order>();
  private ICommand _addOrder;

  public OrdersViewModel()
  {
    _addOrderCommand = new DelegateCommand(execute:(obj)=>AddOrder());
    //or use the relay command depending on which framework you're using
  }

  public ICommand AddOrderCommand{get {return _addOrder}};

  public ObservableCollection<Order> Orders
  {
    get{return _orders;}
    //I usually don't add a public setter for ObservableCollections
  }

  public void AddOrder()
  {
    //replace with your own logic of course
    _orders.Add(new Order());
  }
}

在XAML中,将按钮绑定到Orders,并创建一个绑定到AddOrderCommand的PagedCollectionView。您的视图应使用新订单进行更新。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6467802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档