如何将分层数据结构“双向绑定(bind)”到平面 wpf 数据网格?
应用程序界面模型是 iTunes - 我正在寻找显示平面的数据网格(不是主/细节网格)。用户看到包含艺术家、专辑和歌曲的行;但是数据是分层存储的,其中一个艺术家包含一个专辑列表,其中包含一个歌曲列表。
当用户重命名专辑时,层次结构会自动为给定的艺术家查找或创建新专辑(基于专辑名称),并将歌曲移动到专辑。
在平面数据和分层数据之间添加一个转换层似乎是一个糟糕的解决方案。
更新 1
通读答案后,如果没有大量的幕后工作,似乎无法实现我上面描述的内容。看来我应该重新考虑以这种方式表示我的数据。
最佳答案
结构的展平可以通过使用 LINQ 投影来完成。 See the one-to-many projection in this article 。
您所要做的就是在集合更改时重新查询。
我看不出有什么方法可以使它变得更容易,而且无论是 LINQ 查询、特殊绑定(bind)还是转换器,除非您找到可以为您完成的网格,否则始终需要翻译层。
关于c# - 分层数据绑定(bind)到平面 WPF 数据网格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6039921/