Tedd Ang Teck Loon
Tedd Ang Teck Loon

Reputation: 463

Listbox.Items.Clear() crashes on SelectionChanged

private void lbcreatedRequests_SelectionChanged(object sender, SelectionChangedEventArgs e)
{

}

//Display Edit Page
private void btnEdit_Click(object sender, RoutedEventArgs e)
{
   lbcreatedRequests.Items.Clear(); //crash here 
   _loggedIn = Home._loggedIn;
    if (_loggedIn == true)
    {
       wcf.retrievecreatedrequestListAsync(Home.myID);
    }
}

Trying to clear the Listbox, before it load the new one again

Error

Object reference not set to an instance of an object.

at SGTaxiPool.Views.ShareCab.lbcreatedRequests_SelectionChanged(Object sender, SelectionChangedEventArgs e) at System.Windows.Controls.Primitives.Selector.OnSelectionChanged>(SelectionChangedEventArgs e) at System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged(List1 unselectedItems, List1 selectedItems) at System.Windows.Controls.Primitives.Selector.SelectionChanger.End() at System.Windows.Controls.Primitives.Selector.OnItemsChanged(NotifyCollectionChangedEventArgs e) at System.Windows.Controls.ListBox.OnItemsChanged(NotifyCollectionChangedEventArgs e) at System.Windows.Controls.ItemsControl.OnItemCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e) at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object >sender, NotifyCollectionChangedEventArgs e) at System.Windows.Controls.ItemCollection.NotifyCollectionChanged>(NotifyCollectionChangedEventArgs e) at System.Windows.Controls.ItemCollection.ClearImpl() at System.Windows.PresentationFrameworkCollection`1.Clear() at SGTaxiPool.Views.ShareCab.btnEdit_Click(Object sender, RoutedEventArgs e) at System.Windows.Controls.Primitives.ButtonBase.OnClick() at System.Windows.Controls.Button.OnClick() at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e) at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName

Upvotes: 3

Views: 1316

Answers (1)

BrokenGlass
BrokenGlass

Reputation: 160902

This thread suggests a workaround for this problem is to do this on the Dispatcher thread:

private void lbcreatedRequests_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
   Dispatcher.BeginInvoke(() => { lbcreatedRequests.Items.Clear(); });
}

Upvotes: 1

Related Questions