WPF组合框获取显示的文本

WPF组合框获取显示的文本,wpf,data-binding,combobox,itemtemplate,Wpf,Data Binding,Combobox,Itemtemplate,我的组合框出现问题,试图获取框中显示的文本。我将ItemsSource绑定到SqlDataReader,并尝试根据在第一个组合框中选择的项目填充另一个组合框 在第一个组合框的selection changed事件中,我正在运行一个基于该框中所选内容的查询。然而,我一生都无法得到那篇文章。我尝试过的所有操作都会返回“System.Data.Common.DataRecordInternal”。即使我尝试“comboBox.Text”,它也会返回,尽管它没有显示。我装订错了吗?或者我的组合框项目模板

我的组合框出现问题,试图获取框中显示的文本。我将ItemsSource绑定到SqlDataReader,并尝试根据在第一个组合框中选择的项目填充另一个组合框

在第一个组合框的selection changed事件中,我正在运行一个基于该框中所选内容的查询。然而,我一生都无法得到那篇文章。我尝试过的所有操作都会返回“System.Data.Common.DataRecordInternal”。即使我尝试“comboBox.Text”,它也会返回,尽管它没有显示。我装订错了吗?或者我的组合框项目模板有问题吗

以下是相关代码:

<ComboBox Name="cbTables"  ItemsSource="{Binding ElementName=lstTables, Path=ItemsSource}" 
                              SelectionChanged="cbTables_SelectionChanged" >
                        <ComboBox.ItemTemplate>

                            <DataTemplate>
                                <Label Content="{Binding Path=TABLE_NAME}" />
                            </DataTemplate>
                        </ComboBox.ItemTemplate>
                    </ComboBox>


如果我还需要发布其他内容,请告诉我。谢谢

我看不出您的xaml代码有任何问题。DataRecordInternal是sql集合的正确项类型。如果需要clr对象,请将控件绑定到clr对象列表。但如果您只需要字符串,可以尝试以下解决方案:

<ComboBox Name="cbTables" ItemsSource="{Binding ElementName=lstTables, Path=ItemsSource}" 
DisplayMemberPath="TABLE_NAME" SelectedValuePath="TABLE_NAME" SelectionChanged="cbTables_SelectionChanged" />


private void cbTables_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var str = cbTables.SelectedValue;
}

私有无效cbTables\u SelectionChanged(对象发送方,SelectionChangedEventArgs e)
{
var str=cbTables.SelectedValue;
}

太棒了,谢谢!DisplayMemberPath=“TABLE\u NAME”SelectedValuePath=“TABLE\u NAME”是我所需要的。我有一种感觉,我忽略了一些简单的事情。