2009-02-19 3 views
0

Я уже связываю listview (grid) с hashtable, так как я могу получить предметы оттуда? Перед использованием hashtable я только что сделал ListViewA.SelectedItems;, и я получал источник.WPF Listview связан с Hashtable

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

dlstTemplates мой ListView в WPF

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

    } 
} 

Ошибка оператор 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 = Шаблон, я злословить его более понять

ответ

1

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

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

или сконвертировано.

+0

Я не могу получить Шаблоны как свойство в groupCast, поэтому мне нужно добавить свойство по умолчанию в свой шаблонный шаблон с именем Templates? –

+0

, когда я пытаюсь получить ошибку 1 «Шаблон»: имена членов не могут быть такими же, как и их закрытый тип D: \ cs_InformeMedico \ app \ Template.cs 26 26 Demo.View –

+0

Нет. Вы пытались перечислить один объект в 2-й цикл. Вы используете foreach, вы должны работать над коллекцией. foreach (var thing in (int) 17) даст ту же ошибку, которую вы получали. – ZombieSheep

0
  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 для вдохновения!