如何绑定到WPF工具包datagrid之外的数据上下文

时间:2009-12-11 00:01:18

标签: wpf datagrid binding datacontext external

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

<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不是为此目的。

任何人都可以帮助我吗? 谢谢 克里斯

1 个答案:

答案 0 :(得分:0)

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