【发布时间】:2012-02-18 21:57:40
【问题描述】:
场景
ComboBox C 取决于 ComboBox B 的选定值,它取决于 ComboBox A 的选定值。所有这些 ComboBox 都在 DataGrid 中。
常见的路障:
- 用户必须能够添加新行(这需要具有无参数构造函数的 ItemsSource 项类型)。
- 要访问数据库以填充组合框的可用选项列表,当前项目需要将数据库凭据/DataContext 传递到构造函数中。
尝试 1
我尝试使用 3 个 CollectionViewSource,每个 ComboBoxes 一个 (Concept Code Here),但 ComboBox 的 SelectedItem 会在其他 DataGrid 行中自动选择。我需要找到一种方法将 CollectionViewSource 隔离到每一行。
我考虑过将 CollectionViewSource 数据添加到每个 DataGrid 项中,这样我就可以通过这种方式绑定到它,但是我必须访问数据库才能生成 CollectionViewSource。
我还尝试不共享 this question 中看到的 CollectionViewSource,但这破坏了 3 个组合框以及行之间的链接。如果我可以将 CollectionViewSources 设置为在每个 DataGrid Row 内共享,而不是在每个 DataGrid Row 之间共享,我认为它会起作用。我只是找不到这样做的方法。
尝试 2
我看过这个问题:How to get cell level ComboBox for WPF DataGrid?
这可行,但用户需要能够向 DataGrid 添加行。该问题中的示例代码也使用了无参数构造函数。我处于必须将访问数据库以填充列表的情况传递给构造函数。
问题
我该如何正确地做到这一点?
【问题讨论】: