У меня есть WrapPanel в Windows Phone (7.1), где я добавляю и удаляю циклические пользовательские элементы управления. В большинстве случаев это работает, но иногда я получаю следующую ошибку:
"The parameter is incorrect. "
at MS.Internal.XcpImports.CheckHResult(UInt32 hr)
at MS.Internal.XcpImports.Collection_AddValue[T](PresentationFrameworkCollection`1 collection, CValue value)
at MS.Internal.XcpImports.Collection_AddDependencyObject[T](PresentationFrameworkCollection`1 collection, DependencyObject value)
at System.Windows.PresentationFrameworkCollection`1.AddDependencyObject(DependencyObject value)
at System.Windows.Controls.UIElementCollection.AddInternal(UIElement value)
at System.Windows.PresentationFrameworkCollection`1.Add(UIElement value)
at MyProject.Pages.DashboardPage.RefreshTiles()
Я не воспроизводил эту ошибку, она иногда появляется. Я заметил, что когда я удаляю всю WrapPanel и создаю новую, ошибка никогда не появляется. Таким образом, возникает проблема с удалением и добавлением элементов.
Вот мой код:
private void RefreshTiles()
{
wrapPanelRooms.Children.Clear();
foreach (Room room in Data.Inst.Rooms)
{
ControlRoomTile newTile = new ControlRoomTile{...};
newTile.MouseLeftButtonUp +=
(sender, e) =>
this.NavigationService.Navigate(
new Uri("/Pages/RoomDetailPage.xaml?id=" + ((ControlRoomTile)sender).Id, UriKind.Relative));
try
{
this.wrapPanelRooms.Children.Add(newTile);
}
catch (Exception e)
{
Log.WriteLine(DateTime.Now.ToString("HH:mm:ss.ffff") + " UI: RefreshTiles ERROR1");
}
}
}
Кто-нибудь знает, как исправить это?