Listbox.Items.Clear () падает на SelectionChanged - PullRequest
3 голосов
/ 29 августа 2011
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);
    }
}

Попытка очистить Listbox, прежде чем снова загрузить новую

Error

Ссылка на объект не установлена ​​для экземпляра объекта.

в SGTaxiPool.Views.ShareCab.lbcreatedRequests_SelectionChanged (Отправитель объекта, SelectionChangedEventArgs e) в System.Windows.Controls.Primitives.Selector.OnSelectionChanged> (SelectionChangedEventArgs e) в System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged (Список 1 unselectedItems, List 1 выбранных элементов) в System.Windows.Controls.Primitives.Selector.SelectionChanger.End () в System.Windows.Controls.Primitives.Selector.OnItemsChanged (NotifyCollectionChangedEventArgs e) в System.Windows.Controls.ListBox.OnItemsChanged (NotifyCollectionChangedEventArgs e) в System.Windows.Controls.ItemsControl.OnItemCollectionChanged (Отправитель объекта, NotifyCollectionChangedEventArgs e) в System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke (Object> sender, NotifyCollectionChangedEventArgs e) в System.Windows.Controls.ItemCollection.NotifyCollectionChanged> (NotifyCollectionChangedEventArgs e) в System.Windows.Controls.ItemCollection.ClearImpl () в System.Windows.PresentationFrameworkCollection`1.Clear () в SGTaxiPool.Views.ShareCab.btnEdit_Click (Отправитель объекта, RoutedEventArgs e) в System.Windows.Controls.Primitives.ButtonBase.OnClick () в System.Windows.Controls.Button.OnClick () в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (MouseButtonEventArgs e) в System.Windows.Controls.Control.OnMouseLeftButtonUp (Control Ctrl, EventArgs e) в MS.Internal.JoltHelper.FireEvent (IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName

1 Ответ

1 голос
/ 29 августа 2011

Этот поток предлагает обходной путь для этой проблемы, который должен сделать это в потоке Dispatcher:

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