实现 dynamic/cascading 列表框的最佳方式
Best way to implement dynamic/cascading ListBoxes
我目前正在为如何最好地在我的应用程序中设置 dynamic/cascading 列表框而苦恼。我有一个分层 table,我希望用户能够从最高级别 select 和较低级别的列表框根据更高级别的用户更新 selections。
我正在使用 C#
开发 WPF/MVVM 应用程序
示例数据:
Z000
Z100
Z200
Z300
A000
A100
A110
A111
A000
A100
A110
A112
A000
A200
A210
A211
A000
A200
A210
A212
A000
A300
A310
A311
A000
A300
A320
A321
B000
B100
B110
B111
B000
B100
B110
B112
B000
B200
B210
B211
B000
B200
B220
B222
C000
C100
C110
C111
C000
C100
C110
C112
C000
C100
C120
C121
C000
C200
C210
C211
当应用程序加载时,它应该显示四个列表框,每个列表框显示 Z000、Z100、Z200、Z300 的不同值。
用户可以select来自任何列表框的选项,而不考虑层次结构。
例如。如果用户 select 来自第二个列表框 (Z100) 项目 [A200],则所有较低的列表框都应更新以显示 A200 下 Z200[[=27= 的不同值]A210] 和 Z300[A211, A212]
更高级别的列表框不应受到影响 (Z000)
对于任何混淆,我很难以书面形式描述这种情况。
我发现层叠 ListBox 的想法非常有趣。所以我创建了一个项目来实现它。请检查我的 GitHub repo。这里有一些截图。希望我理解正确。
我目前正在为如何最好地在我的应用程序中设置 dynamic/cascading 列表框而苦恼。我有一个分层 table,我希望用户能够从最高级别 select 和较低级别的列表框根据更高级别的用户更新 selections。
我正在使用 C#
开发 WPF/MVVM 应用程序示例数据:
Z000 | Z100 | Z200 | Z300 |
---|---|---|---|
A000 | A100 | A110 | A111 |
A000 | A100 | A110 | A112 |
A000 | A200 | A210 | A211 |
A000 | A200 | A210 | A212 |
A000 | A300 | A310 | A311 |
A000 | A300 | A320 | A321 |
B000 | B100 | B110 | B111 |
B000 | B100 | B110 | B112 |
B000 | B200 | B210 | B211 |
B000 | B200 | B220 | B222 |
C000 | C100 | C110 | C111 |
C000 | C100 | C110 | C112 |
C000 | C100 | C120 | C121 |
C000 | C200 | C210 | C211 |
当应用程序加载时,它应该显示四个列表框,每个列表框显示 Z000、Z100、Z200、Z300 的不同值。
用户可以select来自任何列表框的选项,而不考虑层次结构。
例如。如果用户 select 来自第二个列表框 (Z100) 项目 [A200],则所有较低的列表框都应更新以显示 A200 下 Z200[[=27= 的不同值]A210] 和 Z300[A211, A212] 更高级别的列表框不应受到影响 (Z000)
对于任何混淆,我很难以书面形式描述这种情况。
我发现层叠 ListBox 的想法非常有趣。所以我创建了一个项目来实现它。请检查我的 GitHub repo。这里有一些截图。希望我理解正确。