Wpf 数据网格和单元级组合框 脚本
组合框C取决于组合框B的选定值,而组合框B的选定值取决于组合框A的选定值。所有这些组合框都位于数据网格中 常见路障:Wpf 数据网格和单元级组合框 脚本,wpf,datagrid,combobox,Wpf,Datagrid,Combobox,组合框C取决于组合框B的选定值,而组合框B的选定值取决于组合框A的选定值。所有这些组合框都位于数据网格中 常见路障: 用户必须能够添加新行(这需要具有无参数构造函数的ItemsSource项类型) 要访问数据库以填充组合框的可用选项列表,当前项目需要将数据库凭据/DataContext传递到构造函数中 尝试1 我尝试使用3个CollectionViewSources,每个ComboBox()对应一个,但是ComboBox的SelectedItem会在其他DataGrid行中自动选中。我需要找到一
如何正确执行此操作?绑定到
列表
或可观察集合
,而不是集合视图源
CollectionViewSource
跟踪当前项,因此更改一个组合框中的值将更改所有组合框中的值我需要跟踪当前项,以便知道如何填充组合框B&C。但是,我不希望它影响所有行。组合框B根据A中的CurrentItem填充,C根据B中的CurrentItem填充。@Paxenos所选项目应在数据对象中跟踪,而不是在集合中跟踪。例如,将ComboBoxA.SelectedItem
绑定到SelectedItemA
,ComboBoxB.SelectedItem
绑定到SelectedItemA.SelectedItemB.SelectedItemC
,以及ComboBoxC
绑定到SelectedItemA.SelectedItemB.SelectedItemC
数据对象中是否也保留了用于填充框的集合?@Paxenos No,这些项目似乎是静态的,应该存储在其他地方。通常在这种情况下,我会有一个所有ComboBoxA项目的静态列表,每个ComboBoxA项目都会有它的ComboBoxB项目列表,以此类推。在绑定中,我会将ItemsSource设置为等于静态项列表,并将SelectedItem
设置为等于数据对象上的项。数据对象上的项通常存储为键,例如整数,并公开一个公共属性,该属性返回StaticList.FirstOrDefault(p=>p.key==DataItemKey)