1

好的,所以我有一个组合框,可以从管理员列表中选择一个管理员:

<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 不用于此目的。

谁能帮我吗?谢谢克里斯

4

1 回答 1

0

您可以使用 datagridcombocolumn,获取项目源有点棘手,我在这里回答了如何做到这一点,享受。

于 2009-12-11T00:51:31.200 回答