c# - WPF 绑定(bind)到对象集合,按顺序存储在 C# 中的另一个集合中的 ID 排序

标签 c# wpf data-binding sorting collections

对于那些喜欢拼图的人:我最近遇到了这个问题,相信一定有更好的解决方案。

考虑:

  • 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/

相关文章:

c# - WPF:绑定(bind)到 DataGrid 中行的 SelectedItem

.net - 列表框刷新的 MVVM 出现问题

android - 如何从自定义 View 的属性中的数据绑定(bind)模型在 xml 中设置信息

c# - 发送 SqlParameter 给 Dapper

c# - 如何在 C# 中获取用户对 AD LDS 条目的有效权限?

c# - System.IO.Ports 5.0 NuGet 包在我的解决方案中不起作用

Vue.js 渲染 v-bind :style background-image url with custom computed property does not work

c# - 使用线程运行 webservice 方法

c# - 如何在新的 AppDomain 中运行 WPF 应用程序? ExecuteAssembly 失败

c# - 绑定(bind)到用户控件 WPF/XAML 的依赖属性