您的位置:首页 > 其它

WP LongListMultiSelector控件Bug,单项删除第五个时候报错

2014-03-26 09:27 295 查看
WP LongListMultiSelector控件Bug,单项删除第五个时候报错。MSDN找了下发现也有人报告过该问题,貌似目前官方还未给出解决方案。MSDN帖子其中一些解决方案重新继承控件,重载某个方法。

http://social.msdn.microsoft.com/Forums/wpapps/en-US/bec4efbf-269b-4be0-aacc-99c8be59b861/wp8-longlistselector-exception-when-removing-items

个人解决方案:

void OnDeleteClick(object sender, EventArgs e)

{

try

{

if (MessageBox.Show("删除选中?", AntiTheft.Resources.AppResources.SoftName, MessageBoxButton.OKCancel) == MessageBoxResult.OK)

{

//由于LongListMultiSelector控件存在bug,单项删除第五个时候会报错。所以下面注释方法暂不用

//while (PushList.SelectedItems.Count > 0)

//{

// UserLoginStorage.PushList.Remove(PushList.SelectedItems[0] as Mode.Push);

//}

//改用把控件数据源抽出筛选完(删除后)重新赋值给控件数据源,最后再同步到绑定到控件的数据源(PushList为LongListMultiSelector控件ID)

var p = PushList.ItemsSource as ObservableCollection<Mode.Push>;

//从数据源筛选并剔除选中项

PushList.ItemsSource = new ObservableCollection<Mode.Push>(from n in p

where PushList.SelectedItems.Contains(n) == false

select n);

UserLoginStorage.PushList = PushList.ItemsSource as ObservableCollection<Mode.Push>;

ResetItemsList();

}

}

catch (Exception)

{

MessageBox.Show("删除失败");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: