WPF ComboBox获取显示的文本

时间:2010-09-29 15:02:34

标签: wpf data-binding combobox itemtemplate

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

在第一个组合框的选择更改事件中,我正在根据该框中选择的内容运行查询。但是,我不能为我的生活得到那个文本。我尝试的所有东西总是返回“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>

告诉我是否需要发布任何其他内容。感谢

1 个答案:

答案 0 :(得分:1)

我发现你的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;
}