Come posso ottenere tutti i controlli all'interno di una specifica RowDefinition / ColumnDefinition in una griglia?

StackOverflow https://stackoverflow.com/questions/1647265

  •  22-07-2019
  •  | 
  •  

Domanda

Devo ottenere tutti i controlli all'interno di una specifica RowDefinition / ColumnDefinition senza scorrere tutti i controlli in un contenitore.

Qualche consiglio? Grazie.

È stato utile?

Soluzione

Non c'è modo di farlo senza iterare tutti i bambini. Ecco un metodo di estensione che restituisce solo i bambini in una posizione della griglia specifica:

public static class GridExtensions
{
    public static IEnumerable<DependencyObject> GetChildren(this Grid grid, int row, int column)
    {
        int count = VisualTreeHelper.GetChildrenCount(grid);
        for (int i = 0; i < count; i++)
        {
            DependencyObject child = VisualTreeHelper.GetChild(grid, i);
            int r = Grid.GetRow(child);
            int c = Grid.GetColumn(child);
            if (r == row && c == column)
            {
                yield return child;
            }
        }
    }
}

Altri suggerimenti

Siamo spiacenti, non c'è modo di farlo se non per iterare sui figli della griglia ed estrarre i valori dalle proprietà associate da soli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top