开发者

Listbox.Items.Clear() crashes on SelectionChanged

开发者 https://www.devze.com 2023-04-01 14:52 出处:网络
private void lbcreatedRequests_SelectionChanged(object sender, SelectionChangedEventArgs e) { } //Display Edit Page
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.OnS开发者_如何学JAVAelectionChanged>(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


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(); });
}
0

精彩评论

暂无评论...
验证码 换一张
取 消