2014-11-08 113 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(); 
      } 

    }