对于那些喜欢拼图的人:我最近遇到了这个问题,相信一定有更好的解决方案。
考虑:
- Foo 对象的 ObservableCollection,称为 foos。
- Foo 包含一个字符串 ID 字段
- 我无法控制foos
- foos 将会改变
然后:
- 我有另一个名为sortLikeThis的集合
- sortListThis 包含字符串
- 字符串是按foos 显示顺序排列的 ID
加上:
- foos 中可能有对象的 ID 不在 sortLikeThis 中。这些需要放在最后。
- 同样,sortLikeThis 中可能存在未出现在 foos 中的字符串。
有没有一种很好的方法可以按照 sortLikeThis 中的 ID 定义的顺序绑定(bind)到 foo 中的 Foo 对象并在 wpf 中显示?
最佳答案
听起来像是自定义可观察集合的工作,它实现了 IEnumerable 并且有一个非常小的枚举器(aaah,yield)来处理自定义排序的逻辑。
public class SortFoosLolThx : ObservableCollection<Foo> {
public IList<string> SortList {/*...*/}
/*...*/
public override IEnumerator<Foo> GetEnumerator() { /*...*/ yield foo; /*...*/}
}
关于c# - WPF 绑定(bind)到对象集合,按顺序存储在 C# 中的另一个集合中的 ID 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/161884/