1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| private void Chargement_Resultat_Requete()
{
// On crée les colonnes
GridView gv = new GridView();
for (int i = 0; i < this._DsResultatRequete.Tables[_LibelleTable].Columns.Count; i++)
{
GridViewColumn gc = new GridViewColumn();
DataTemplate template = new DataTemplate(); //On associe un template pour les cellules qui vont être modifiables.
gc.Header = this._DsResultatRequete.Tables[_LibelleTable].Columns[i].ColumnName;
gc.DisplayMemberBinding = new Binding(this._DsResultatRequete.Tables[_LibelleTable].Columns[i].ColumnName);
// Si la colonne est une colonne "système" non soumise à modification par l'utilisateur on ne permet pas la création de l'editbox qui va avec.
if (!(Enum.IsDefined(typeof(Wyniwyg.Enums.ColonneSansEdition), gc.Header.ToString())))
{
FrameworkElementFactory BoiteEdition = new FrameworkElementFactory(typeof(Wyniwyg.IHM.WPFControls.EditBox));
BoiteEdition.SetBinding(TextBox.TextProperty, new Binding(gc.Header.ToString()));
template.VisualTree = BoiteEdition;
gc.CellTemplate = template;
}
gv.Columns.Add(gc);
// On rend la colonne non visible en mettant sa largeur à 0, si celle-ci est une colonne Timestamp.
if (Enum.IsDefined(typeof(Wyniwyg.Enums.ColonneSansEdition), gc.Header.ToString()))
{
if (gc.Header.ToString() != "Id") { gv.Columns[i].Width = 0; }
}
}
// On gère la ListView et Xaml en même temps.
Binding bind = new Binding();//On bind les données a la DataTable
this.View = (ViewBase)gv;
this.DataContext = this._DsResultatRequete.Tables[_LibelleTable]; // Déclarer la source du binding
this.SetBinding(ListView.ItemsSourceProperty, bind); // Attacher au contrôle
} |
Partager