C# 从WPF DataGrid中的数据模板获取组合框

C# 从WPF DataGrid中的数据模板获取组合框,c#,wpf,datagrid,combobox,C#,Wpf,Datagrid,Combobox,我有一个WPF Datagrid,combobox有一个datatemplate列 <DataGrid Name="grdTest" ItemsSource="{Binding Path=TestsList,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"> <DataGrid.Columns> <DataGridTemplateColumn Width="120"> <DataG

我有一个WPF Datagrid,combobox有一个datatemplate列

<DataGrid Name="grdTest"  ItemsSource="{Binding Path=TestsList,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<DataGrid.Columns>
   <DataGridTemplateColumn Width="120">
        <DataGridTemplateColumn.Header >
            <TextBlock Text="Test Name" ToolTip="Test Name" Width="109"/>
        </DataGridTemplateColumn.Header>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <ComboBox  Name="cbxTest" 
        SelectedValue="{Binding TestID,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
        DisplayMemberPath="Test" SelectedValuePath="TestID" SelectionChanged="cbxTest_SelectionChanged_1"
        ItemsSource ="{Binding Path=TestList}">
                </ComboBox>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

我试图在datagrid的CellEditEnding事件中获取combobox元素,如下所示:

 FrameworkElement elmtTest = grdTest.Columns[7].GetCellContent(e.Row);
 ContentPresenter myContentPresenter = FindVisualChild<ContentPresenter>(elmtTest);
 DataTemplate myDataTemplate = myContentPresenter.ContentTemplate;
 ComboBox myComboBox = (ComboBox)myDataTemplate.FindName("cbxTest", myContentPresenter);
FrameworkElement elmtest=grdTest.Columns[7].GetCellContent(e.Row);
ContentPresenter myContentPresenter=FindVisualChild(elmtest);
DataTemplate myDataTemplate=myContentPresenter.ContentTemplate;
ComboBox myComboBox=(ComboBox)myDataTemplate.FindName(“cbxTest”,myContentPresenter);
elmtTest的类型为System.Windows.Controls.ContentPresenter。
但是内容模板提供null。如何获取datagrid列的combobox元素?

我已经让它工作了。这是我这边的一个愚蠢的错误。我必须把combobox传给FindVisualChild

FrameworkElement elmtTest = grdTest.Columns[7].GetCellContent(e.Row);
ComboBox myComboBox = FindVisualChild<ComboBox>(elmtTest);
FrameworkElement elmtest=grdTest.Columns[7].GetCellContent(e.Row);
ComboBox myComboBox=FindVisualChild(elmtTest);

我正在尝试相同的方法,但我发现“FindVisualChild”在当前上下文中不存在。“我该怎么办?”?