WrapPanel.Children.Add (): System.ArgumentException: параметр неверен - PullRequest
2 голосов
/ 11 ноября 2011

У меня есть 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");
        }
    }
}

Кто-нибудь знает, как исправить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...