【问题标题】:Edit collection in separated ListBoxes在单独的列表框中编辑集合
【发布时间】:2012-02-19 11:40:29
【问题描述】:

我有这样的源元素:

var collection = new ObservableCollection<SourceItems>(source);

源码实现INotifyPropertyChanged

我需要使用规则在 CheckListBoxes(带有 WPFToolKit 中的复选框的列表框)中编辑和查看此集合:

  • 每个 CheckListBoxes 必须按集合字段之一排序。集合具有每个 CheckListBox 的 order 字段。例如 - ItemOrder。
  • 一个列表框中的可见元素依赖于另一个列表框中的选中项。

每个 CheckListBox 都有 itemsSource

checkListBox1.ItemsSource=collection;

所以,如果我检查一个列表框中的项目,我必须只看到另一个列表框中的检查项目。 并且每个列表框都必须按源字段之一进行排序

  • listBox1 按字段 orderItem

  • listBox2 按字段 orderVisibleItem 等等。

用户可以在每个列表框中移动元素,并且不能影响其他列表框中的排序。

我尝试为每个 ListBox 创建 CollectionViewSource。但是当我对一个进行排序时,它会相互排序。

用于过滤和排序的 Linq 也不起作用,因为更改不会动态更新。

有没有最好的方法来创建这样的功能?

【问题讨论】:

    标签: wpf inotifypropertychanged itemssource checkedlistbox


    【解决方案1】:

    您应该使用CollectionViewSource。 我猜你用过CollectionViewSource.GetDefaultView(.. )?您应该为该集合创建两个新视图:

    CollectionViewSource cvs = new CollectionViewSource() { Source = TheCollection };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 2020-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多