Ciao Attilio,
che framework hai usato per sviluppare l'applicazione?
Perchè secondo me potresti fare tutto con Linq, quindi fare una collection in memoria di tutti i libri e poi ad esempio in una listbox piuttosto che una combo, agganciare solo le diverse categorie, filtrandole appunto con Linq, una sintassi di questo tipo:
IEnumerable<Libro> lista = GetLibri();
listbox.DataSource = lista.Select(l => l.Categoria).Distinct();
mentre poi in griglia quando ad esempio ti selezionano la categoria nella listbox, puoi andare a mettere solo quelli di quella categoria, sempre con Linq:
string cat = listBox.SelectedItem as string;
griglia.DataSource = lista.Where(l => l.Categoria == cat);
dove "GetLibri()" è un metodo che ti carica i libri dentro ad una List<Libro> e appunto Libro è una classe che rappresenta i tuoi libri.
Per intenderci:
class Libro
{
public string Categoria { get; set; }
public int Id { get; set; }
...altre prop...
}
private IEnumerable<Libro> GetLibri()
{
List<Libro> lista = new List<Libro>();
...connessione al db, lettura da xml quello che ti va meglio etc...
while(....)
{
Libro l = new Libro();
l.Categoria = ...;
l.Id = ...;
...altre prop...
lista.Add(l);
}
return lista;
}
Ciao.
Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo