Salut J'ai un DataGridView qui lie XML manuellement.Méthode de tri Linq à XMl
Je souhaite trier les colonnes en cliquant sur l'en-tête de colonne.
Voici la méthode que j'ai écrite: lorsque vous cliquez sur un en-tête de colonne, il saisit l'en-tête de colonne et les données de tri par cet en-tête de colonne.
J'ai aussi mis un interrupteur à bascule (direction) à ce sujet, alors quand à nouveau clic utilisateur, les données peuvent être triées dans des ordres différents (ascendant/descendant)
public BindingSource BindXML(string file, string headerName, bool direction)
{
XElement record = XElement.Load(file);
var q = from r in record.Descendants("record")
//ascending order?
orderby (string)r.Element(headerName)
select new
{
work_pack = (int)r.Element("work_pack"),
Locational_Details = (string)r.Element("Locational_Details"),
RegimeName = (string)r.Element("RegimeName")
};
if (direction)
{
//descending order
q.OrderByDescending(r => r);
}
return new BindingSource(q, null);}
Le problème est l'expression lambda q.OrderByDescending(r => r);
doesn « t travail du tout
i a même essayé q.OrderByDescending(r => r.RegimeName)
et q.OrderByDescending(r => r.Element(headerName));
Aucun d'eux ne fonctionne. Toute aide à ce sujet?
bien dit +1 :) – cordialgerm