2016-01-20 44 views
0

我有一个组合框,看起来像这样:WPF组合框带有名称和ID

<ComboBox x:Name="genreComboBox" ItemsSource="{Binding}" SelectionChanged="genreComboBox_SelectionChanged"> 
     <ComboBox.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Name}"/> 
      </DataTemplate> 
     </ComboBox.ItemTemplate> 
    </ComboBox> 

我将它绑定到流派List<Genre>,其中有一个名字和一个genreId的列表。每当选择更改时,我都会根据该ID更新GridView的DataContext。所以基本上我需要显示的名字,并使用id在DataContext=someDB.getStuffById(int genreId);

我已经试过搞乱与周围getStuffById(genreComboBox.SelectedItem)getStuffById(genreComboBox.SelectedValue),设置DisplayMemeberPath="Name"SelectedValuePath="GenreId"。大多数情况下,显示名为get。

无论我试图获得genreId,我总是会得到一个NullReferenceException。

谢谢!

+0

为什么你不在后面的代码中绑定组合框? – Kami

+0

执行以下操作:genreComboBox.ItemSource =列表; genreComboBox.DisplayMemberPath =“名称”; genreComboBox..SelectedValuePath =“Id”; genreComboBox.DataContext =列表;在列表对象中读取列表。 – Kami

+0

嗯,我试图围绕着Binding,这还是一个新的东西。如果我在XAML中获得'ItemSource = {Binding}'并且'genreComboBox.DataContext = genreList;'在代码后面的代码中,只是'genreComboBox.ItemSource = genreList'在代码后面会起作用吗? –

回答

1

您可以尝试使用流派的原始列表调用getStuffById

getStuffById(listofGenres[genreComboBox.SelectedIndex].GenreId); 
+0

得到一个NullReferenceException简单,但巧妙的技巧。仍然不知道实际的绑定问题是什么,但这样做会很好。 –