Problème de sélection avec un DataGrid et un TabControl
Yep vous tous,
Un ami m'a parlé du problème suivant :
Un DataGrid est placé dans un TabControl. A chaque fois que l'on sélectionne un enregistrement du DataGrid, l'événement de sélection est remonté dans celui du TabControl (changement d'onglet).
Si on a le malheur de charger le DataGrid dans ce dernier événement, alors le DataGrid se charge en boucle et il devient impossible de sélectionner un enregistrement...
Quelqu'un as t'il une explication ?
Code:
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
|
TabControl MonTabControl = new TabControl();
DataGrid MonDataGrid = new DataGrid();
System.Data.DataTable MaTable;
protected void DataGridSelectionExample()
{
// Changement d'onglet dans le TabControl.
MonTabControl.SelectionChanged += (te, ts) =>
{
// Appelé à chaque fois que l'on sélectionne un enregistrement dans MonDataGrid.
// Du coup, impossible rendre visible l'enregistrement sélectionné dans la grille.
ChargerMonDataGrid();
};
// Changement de sélection d'enregistrement dans le DataGrid.
MonDataGrid.SelectionChanged += (de, ds) =>
{
// Cet événement remonte vers le SelectionChanged du TabControl.
};
}
protected void ChargerMonDataGrid()
{
MaTable = new System.Data.DataTable();
// ...
MonDataGrid.ItemsSource = MaTable.Rows;
} |