Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Просмотр списка WPF, связанный с Hashtable

Автор вопроса: Jonathan EscobedoОтветов: 2

Я уже привязал список (сетку) к хеш-таблице, так как я могу получить элементы оттуда? Прежде чем использовать хэш-таблицу, я просто сделал ListViewA.SelectedItems; и получил исходный код.

Ir терпит неудачу, когда я использую два цикла foreach:

dlstTemplates это мой ListView в WPF

foreach (var group in dlstTemplates.SelectedItems)
{
  foreach (var Template in group)
  {

  }
}

Оператор foreach, ошибка 2, не может работать с переменными типа "объект", поскольку "объект" не содержит общедоступного определения для "GetEnumerator" D:\cs_InformeMedico\app\Template.xaml.cs 85 21 Demo.View

Я нашел это в отладчике:

-       dlstPlantillas.SelectedItems    Count = 1   System.Collections.IList {System.Windows.Controls.SelectedItemCollection}
-       [0] {System.Data.Linq.SqlClient.ObjectReaderCompiler.Group<string,Demo.View.Plantilla>} object {System.Data.Linq.SqlClient.ObjectReaderCompiler.Group<string,Demo.View.Plantilla>}
-       Non-Public members
+       items   Count = 97  System.Collections.Generic.IEnumerable<Demo.View.Plantilla> {System.Collections.Generic.List<Demo.View.Plantilla>}
        key "101010112000"  string
        System.Linq.IGrouping<K,T>.Key  "101010112000"  string
-       Results View    Expanding the Results View will enumerate the IEnumerable
+       [0] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [1] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [2] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [3] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [4] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [5] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [6] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [7] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [8] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [9] {Demo.View.Plantilla}   Demo.View.Plantilla
+       [10]    {Demo.View.Plantilla}   Demo.View.Plantilla
-       Raw View
-       [System.Windows.Controls.SelectedItemCollection]    Count = 1   System.Windows.Controls.SelectedItemCollection
+       [0] {System.Data.Linq.SqlClient.ObjectReaderCompiler.Group<string,Demo.View.Plantilla>} object {System.Data.Linq.SqlClient.ObjectReaderCompiler.Group<string,Demo.View.Plantilla>}
+       Raw View
        IsFixedSize false   bool
        IsReadOnly  false   bool

Итак, когда группа представляет собой

{System.Data.Linq.SqlClient.ObjectReaderCompiler.Group<string,Demo.View.Plantilla>} object type

Извините, Plantilla = Template, я искажаю его для большего понимания

listviewbindingwpf

Ответы

Ответ 1 · рейтинг 1 · ZombieSheep

Кажется, вы не работаете с коллекцией во втором цикле.
Возможно, вы хотели

foreach(var group in dlstTemplates.SelectedItems)
{
    foreach(var Template in groupCast.Templates)
    {
        //do stuff...
    }
}

или что-то в этом роде.

Ответ 2 · Jonathan Escobedo

            foreach (var group in dlstPlantillas.SelectedItems)
            {
                IGrouping<string, Plantilla> groupCast = group as System.Linq.IGrouping<string, Plantilla>;
                if (null == groupCast) return;
                foreach (Plantilla item in groupCast)
                {
                    template.codigoestudio = item.codigoestudio;

                }
            }

надежды помогают... спасибо ZombieSheep за вдохновение!

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы