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

Я уже привязал список (сетку) к хеш-таблице, так как я могу получить элементы оттуда? Прежде чем использовать хэш-таблицу, я просто сделал 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, я искажаю его для большего понимания


person Jonathan Escobedo    schedule 19.02.2009    source источник


Ответы (2)


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

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

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

person ZombieSheep    schedule 19.02.2009
comment
Я не могу получить шаблоны как свойство в groupCast, поэтому мне нужно добавить свойство по умолчанию в моем классе шаблонов с именем Templates? - person Jonathan Escobedo; 19.02.2009
comment
когда я пытаюсь это сделать, я получаю сообщение об ошибке 1 «Шаблон»: имена участников не могут совпадать с их типом включения D:\cs_InformeMedico\app\Template.cs 26 26 Demo.View - person Jonathan Escobedo; 19.02.2009
comment
Нет. Вы пытались перечислить один объект во втором цикле. Вы используете foreach, вы должны работать с коллекцией. foreach(var thing in (int)17) выдаст ту же ошибку, что и вы. - person ZombieSheep; 19.02.2009
comment
Возможно, если бы вы разместили код для члена своей коллекции в dlstTemplates.SelectedItems), мы могли бы разобраться с этим. - person ZombieSheep; 19.02.2009

            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 за вдохновение!

person Jonathan Escobedo    schedule 19.02.2009