Я пишу приложение Windows 8 (приложение XAML-C# -Windows Store (метро)), где мне нужно прокрутить коллекцию SelectedItems GridView.System.InvalidCastException во время цикла через GridView.SelectedItems
Вот мой код:
private void bottomAppBarBotonEliminar_Tapped(object sender, TappedRoutedEventArgs e)
{
//Borrar el(los) elemento(s) seleccionado(s)
foreach (GridViewItem elItem in GVElementos.SelectedItems)
{
MiColeccion.RemoveAt(GVElementos.Items.IndexOf(elItem));
}
ElementoSQL.Sincronizar(MiColeccion);
}
Когда я запускаю его и этот метод срабатывает, я получаю следующее сообщение об ошибке (в переводе с испанского):
An exception of type 'System.InvalidCastException' occurred
in Lista.exe but was not handled in user code
Additional information: Unable to convert an object of
type 'System.String' to the type 'Windows.UI.Xaml.Controls.GridViewItem'.
Когда программа брейки, Visual Studio выделяет строку с помощью инструкции foreach.
"GVElementos" - это XAML GridView.
Не является ли «elItem» типа «GridViewItem» и «GVElementos.SelectedItems» набором элементов типа «GridViewItem»?
Что я делаю неправильно? Есть ли другой способ итерации GridView? Я пришел из ASP.NET, где этот способ делать это имеет смысл.
Вы обратили внимание на сообщение? Он говорит, что элемент является строкой. Забудьте о том, что вы знаете из ASP.NET, вы используете другую структуру с различными элементами управления. Узнайте, как их использовать. Первый шаг (в данном случае) распознает сообщение об ошибке. Следующий шаг - проконсультироваться с документацией и узнать больше о инструментах, которые вы используете. –
Я думаю, что @AnthonyPegram говорит «Нет», на ваш вопрос _Isn't «elItem» типа «GridViewItem» и «GVElementos.SelectedItems» представляет собой набор элементов типа «GridViewItem»? _ :-) Проверьте MSDN doco, как было предложено, чтобы подтвердить свое понимание используемых вами инструментов, прежде чем обращаться за помощью. – Sepster
Вы правы, меня смущает то, что я знаю из ASP.NET. Сначала я должен прочитать документы. Почему-то я думал, что здесь будут дружелюбные люди. Спасибо, что нашли время ответить. –