我的组合框出现问题,并试图获取框中显示的文字。我将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>
告诉我是否需要发布任何其他内容。感谢
答案 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;
}