2015-04-21 3 views
0
int[] checkeditemslist = new int[ChkList.Items.Count];//ChkList is Listbox name in xaml 

ListBoxItem lt =((ListBoxItem)ChkList.Items[i]); 

Теперь я получаю ошибку исключение типа System.InvalidCastException произошло, но не был обработан в пользовательском коде Невозможно привести объект типа CheckListItem к типу System.Windows.Controls.ListBoxItem.Invalid Cast Исключение происходя

Пожалуйста, предложите мне, где я пошло не так

+0

хорошо исключения говорит вам уже, что не так. вы контрольный список содержит «CheckListItems» –

ответ

0

попробовать этот

List<string> checkedItems = new List<string>(); 
    foreach (ListItem liCheckedItems in ChkList.Items) 
      { 
    checkedItems.add(liCheckedItems.Value) 
    } 
+0

У меня есть 4 элемента в моем проверочном списке, и вам нужно зацикливать хотя элементы, и если отмеченные значения должны быть объединены. При использовании foreach это не делается. i 0% – vjy

+0

Список checkedItems = new Список (); Еогеасп (ListItem liCheckedItems в ChkList.Items) { checkedItems.add (liCheckedItems.Value) } строка результата; result = string.Join ("~", checkedItems.ToArray()); ---------------------- если проверенные элементы Допустимы собака, кошка, мышь выход будет выглядеть «собака ~ ~ кошка мышь» – TwelveOclock

+0

вот почему нам нужно здесь использовать функцию string.join и ToArray для преобразования списка в массив, а затем объединить их вместе, чтобы создать конкатенацию строки – TwelveOclock

0

Как говорит ошибка, это ошибка литого типа, ваш ChkList содержат элементы класса CheckListItem и вы пытаетесь бросить их ListBoxItem и, следовательно, система генерирует System.InvalidCastException (Invalid Cast Excception)

Пожалуйста, убедитесь, что вы заполняете список объектами нужного класса и в то время как retrievi Объекты из одного и того же типа списка отбрасывают объекты из списка в правильный класс.

Смежные вопросы