Hola, necesito de su ayuda compañeros, estoy usando WPF, LinQ y C#. Tengo dos consultas en LinQ, en la primer consulta obtengo N registros, especificamente ID's y estos los guardo en un Array de enteros cuando recorro la consulta dentro de un foreach, y
en este foreach hago la segunda consulta, dónde en la condición de esta consulta ocupo cada uno de los ID's que voy obteniendo más lo que se teclea en un textbox mediante Contains, el problema viene cuando quiero asignar el resultado de esta segunda
consulta al ItemsSource de un ListView.
Si asigno la variable de la consulta al ItemsSource dentro del foreach funciona, pero solo asigna los resultados que encuentré con el último ID del array y no con los anteriores, es decir, si el array donde guarde los ID's de la primer consulta son 2,
el ItemsSource del ListView solo toma los resultados de la segunda consulta para el último ID del array pero no para los resultados del primer elemento del array. Mi código esta así:
int[] a;//array dónde guardo los ID's de mi primer consulta
var query1 = from p in miDataContext.MiTablaUno
where p.idProyecto == 7 select p;
int numRows = query1.Count();
a = new int[numRows];
int contador = 0;
foreach (var w in query1) {
a[cntadr] = ww.idCuenta.Value;
var qry = from d in miDataContext.MiTablaDos
where d.Nombre.Contains(miTextBox.Text) &&
d.idCuen.Value == a[contador] select d;
miListView.ItemsSource = qry;
contador++;
}
miListView.SelectedValuePath = "idProdGral";
miListViewwProd.DisplayMemberPath = "NombreGral";
miListView.Visibility = Visibility.Visible;
¿alguien sabe qué puedo hacer para poder asignar todos los resultados que obtenga en la segunda consulta de cada ID que tenga mi array al ItemsSource de mi ListView?
También intenté asignar el resultado de la segunda consulta a un ArrayList de esta forma:
int[] a;
ArrayList miArray = new ArrayList();
var query1 = from p in miDataContext.MiTablaUno
where p.idProyecto == 7 select p;
int numRows = query1.Count();
a = new int[numRows];
int contador = 0;
foreach (var w in query1) {
a[cntadr] = ww.idCuenta.Value;
var qry = from d in miDataContext.MiTablaDos
where d.Nombre.Contains(miTextBox.Text) &&
d.idCuen.Value == a[contador] select d;
miArray.Add(qry);
contador++;
}
miListView.ItemsSource = miArray;/*en esta linea me muestra un error de índice fuera de los límites de la matriz*/
miListView.SelectedValuePath = "idProdGral";
miListViewwProd.DisplayMemberPath = "Nombre";
miListView.Visibility = Visibility.Visible;
Pero me tira el error de índice fuera de los límites de la matriz, no sé por qué me ocurré esto, ¿podrían orientarme para poder asignar en el itemsSource de mi listView todos los resultados de mi segunda consulta para cada uno de los ID's y lo que se teclea?
De antemano muchas gracias, saludos.