J'ai un DataGrid
implémenté dans une fenêtre WPF à l'intérieur d'un VSTO-AddIn, qui est censé prévisualiser des données à l'utilisateur avant qu'il ne soit collé à une feuille Excel existante. Le CanUserSortColumns-Property
est défini sur true
, afin que l'utilisateur puisse réorganiser les colonnes avant qu'elles ne soient lues et collées sur la feuille. Cependant, lorsque j'ai lu le DataRows
à partir du DataGrid
, comme indiqué ci-dessous, les colonnes sont de retour dans leur position d'origine.Comment sauvegarder les positions de colonnes réarrangées lors de la lecture d'un DataGrid?
object[,] dataArray = new object[allRows, allCols];
for (int r = 0; r < allRows; r++)
{
DataRow row = ClientGrid.Rows[r];
for (int c = 0; c < allCols; c++)
{
dataArray[r, c] = row[c];
}
}
Voici ma question: Est-il possible de résoudre ce problème de la manière rapide ou tout au moins de suivre les changements des indices d'affichage de la colonne afin de réorganiser l'ordre des colonnes dans le code à chaque changement de l'affichage des colonnes commande?
J'ai déjà essayé de travailler sur quelque chose avec la propriété DisplayIndex
mais je n'ai pas vraiment compris les chiffres qu'elle recrache.
J'ai eu le même problème il y a un moment à l'aide DataGrid, DataSource et DataBinding. J'ai abandonné DataGrid et utilisé un ListView à la place. Mais si vous avez besoin d'éditer les cellules alors le 'ItemsControl 'WPF serait une meilleure solution. – Bijan