好的,所以我有一个组合框,可以从管理员列表中选择一个管理员:
<ComboBox x:Name="adminCombo"
ItemsSource="{Binding AdminsList}"
DisplayMemberPath="Name"
SelectedValue="{Binding Administrator}"
SelectedValuePath="Name"/>
在此之下,我有一个 WPF Toolkit DataGrid。每个管理员都拥有一个用户定义字段 (AvailableUDF) 的列表。在我的数据网格的第一列中,我想要一个可编辑的模板,该模板由另一个组合框组成,其项目源是属于所选管理员的字段列表。以下标记不起作用。
<toolkit:DataGrid
AutoGenerateColumns="False"
ItemsSource="{Binding Path=UserDefinedFields}">
<toolkit:DataGrid.Columns>
<toolkit:DataGridTemplateColumn Header="Custom Data">
<toolkit:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding ElementName=adminCombo,
Path=SelectedValue.AvailableUDFs}"
SelectedValue="{Binding Field.Type}"
DisplayMemberPath="Name"/>
</DataTemplate>
</toolkit:DataGridTemplateColumn.CellEditingTemplate>
</toolkit:DataGridTemplateColumn>
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
我也尝试过相对源 - 查找祖先并搜索树到上一个组合框,但无济于事。奇怪的是,将相同的组合框放入 ListView 的项目模板中可以正常工作,正确的项目列表显示取决于所选的管理员。使用 WPF ListView 的问题在于,最终我希望在同一行上有其他可编辑的单元格,而普通的 ListView 不用于此目的。
谁能帮我吗?谢谢克里斯