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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;
}