/// <summary> /// Permet de refermer une ligne encliquant dessus /// Le fait de vérifier le parent résoud un problème de comportement /// de clic dans le rowDetailTemplate qui declenche l'évènement /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GrdLignes_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { if (e.OriginalSource != null) { var c = FindParent <DataGridCell>(e.OriginalSource as DependencyObject); if (c != null) { Visibility newVis = GrdLignes.GetDetailsVisibilityForItem(GrdLignes.SelectedItem) == Visibility.Visible ? Visibility.Collapsed : Visibility.Visible; GrdLignes.Items.Cast <Ligne>().ToList().ForEach((l) => GrdLignes.SetDetailsVisibilityForItem(l, l == GrdLignes.SelectedItem ? newVis : Visibility.Collapsed)); } } }
private void doFocus(string msg) { switch (msg) { case "GencodEmpl": this.GencodEmpl.Focus(); break; case "GencodArt": this.GencodArt.Focus(); break; case "ScrollToSelectedItem": GrdLignes.UpdateLayout(); GrdLignes.ScrollIntoView(GrdLignes.SelectedItem); break; default: break; } }