2014-11-08 46 views
0

我是新来的,这是我的第一个问题。WPF:使用与数据表绑定的列表框中的值

我正在设计一个textblock,当我改变文本时可以查询我的数据库。之后,用户可以在列表框中选择一个值,然后文本块应该将其值更改为已选择的值。

当我使用Messagebox.Show时,我成功地检索了我在列表框中选择的值,但是当我再次更改文本块中的值或者我想更改文本块值时,VS显示错误消息与系统.NullReferenceException。

我想了解根本原因,以便将来避免它。而且我也想知道是否可以从列表框中检索多个记录。非常感谢!

下面是我的XAML代码:

<Grid> 
    <Label Content="Label" HorizontalAlignment="Left" Margin="40,38,0,0" VerticalAlignment="Top"/> 
    <TextBox x:Name="Searchbox" HorizontalAlignment="Left" Height="23" Margin="85,38,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="216" TextChanged="Read_DB"/> 
    <Button Content="Button" HorizontalAlignment="Left" Height="24" Margin="321,37,0,0" VerticalAlignment="Top" Width="70"/> 
    <ListBox x:Name="result_box" ItemsSource="{Binding}" Margin="85,61,216,155" SelectionChanged="result_box_SelectionChanged" /> 

</Grid> 

下面是后面的代码:

​​

回答

0

最后我发现一个解决方案。只有在datarowview不为null时才需要更改show操作才能完美解决该问题。

private void result_box_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 

     DataRowView view = result_box.SelectedItem as DataRowView; 

      if (view != null) 
      {      
       MessageBox.Show(view["ID"].ToString()); 
       Searchbox.Text = view["ID"].ToString(); 
      } 

    }