2010-09-29 25 views
0

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

在第一个组合框的选择更改事件中,我根据在该框中选择的内容运行查询。但是,我无法为我的生活获得这些文本。我试过的所有东西都会返回“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

我没有看到你的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; 
} 
+0

非常感谢! DisplayMemberPath =“TABLE_NAME”SelectedValuePath =“TABLE_NAME”是我所需要的。我有一种感觉,那就是我忽略的那种简单。 – wangburger 2010-09-29 19:51:53

相关问题