Имею сетку, построенную с помощью Grid
10*10.
В ячейках этой сетки лежат элементы Button
, созданные и помещенные туда динамически.
Вопрос, как мне обратится к этим ячейкам, чтоб можно было взаимодействовать с помещенными в них элементами (к примеру поменять им цвет, или свойство content). Не могу понять как это в WPF делается..
Метод создающий кнопку.
private void CreateItemField(int i, int j, Brush color)
{
Button button = new Button();
button.Margin = new Thickness(0.5d);
button.Background = color;
button.Name = "btn" + i + j;
MainGrid.Children.Add(button);
Grid.SetColumn(button, i);
Grid.SetRow(button, j);
}
Простым путём — никак.
Если вы почему-то решили создавать контент в code-behind (почему не через ItemsControl
, с MVVM?), проще всего при создании запомнить отображение номера клетки в кнопку.
Если вы этого не делаете, Grid
сам по себе не имеет понятия о ячейках. Вы можете опросить у него Children
, получить список всех дочерних элементов, и искать среди них в цикле (или через LINQ) нужные, пользуясь функциями Grid.GetRow
и Grid.GetColumn
для получения нужных индексов.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как использовать FluentValidation в патерне репозиторий, когда необходимо проверить уникальность, например, логина (проверяется в БД)?
Задача возникла следующая: создать метод, расширяющий массив произвольной размерности