【问题标题】:Listbox.Items.Clear() crashes on SelectionChangedListbox.Items.Clear() 在 SelectionChanged 上崩溃
【发布时间】:2011-08-29 13:12:55
【问题描述】:
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

错误

对象引用未设置为对象的实例。

在 SGTaxiPool.Views.ShareCab.lbcreatedRequests_SelectionChanged(Object sender, SelectionChangedEventArgs e) 在 System.Windows.Controls.Primitives.Selector.OnSelectionChanged>(SelectionChangedEventArgs e) 在 System.Windows.Controls.Primitives.Selector.InvokeSelectionChanged(List1 unselectedItems, List1 selectedItems) 在 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(对象>发件人,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(控制 ctrl,EventArgs e) 在 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj,IntPtr unmanagedObjArgs,Int32 argsTypeIndex,Int32 actualArgsTypeIndex,字符串 eventName

【问题讨论】:

  • 这怎么可能有3个赞成票?没有任何信息
  • BrokenGlass 的回答是正确的。可惜他删了。他链接到这个:forums.silverlight.net/p/17967/73247.aspx
  • 希望@BrokenGlass 可以再次添加答案。刚刚试了一下,他是对的。给出的例外是InvalidOperationException,消息为Cannot change ItemCollection during a OnItemsChanged event.
  • 好吧,我猜我当时正在取消删除,谁知道 - 我不确定这是否仍然适用于完整版本,该线程是关于 Beta 2 的
  • @Tedd 不要更改整个问题。这不是和以前一样的问题

标签: c# silverlight listbox


【解决方案1】:

This thread 建议解决此问题的方法是在 Dispatcher 线程上执行此操作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2018-11-01
    • 1970-01-01
    • 2011-07-24
    • 2011-09-18
    • 2016-06-02
    • 2013-03-14
    相关资源
    最近更新 更多