Столкнулся с проблемой при создании обработчика на кнопку.
У меня есть форма, на которой ещё нет элементов, кроме кнопки с обработчиком.
Форма в Visual Studio
Форма запущенной программы с созданными элементами.
Создание нужных элементов с данными из БД (для наглядности оставил только создание чекбоксов).
//Метод, который выполняется при запуске программы
public void LoadIngredient()
{
//Данные из БД
MySqlConnection MSConnection = DBConnection.ConnectionOpen();
MySqlCommand MSCommand = new MySqlCommand("SELECT * FROM ингредиент;", MSConnection);
MySqlDataReader ingredient = MSCommand.ExecuteReader();
while(ingredient.Read())
{
//Создание сетки
var bc = new BrushConverter();
Grid global = new Grid
{
Background = (Brush)bc.ConvertFrom("#FFECECEC"),
Margin = new Thickness(0, 10, 0, 0)
};
//Создание чекбокса
CheckBox addIngredient = new CheckBox
{
Content = "Чекбокс",
HorizontalAlignment = HorizontalAlignment.Left,
Margin = new Thickness(10,14,0,0),
VerticalAlignment = VerticalAlignment.Top,
};
global.Children.Add(addIngredient);
parrent.Children.Add(global);
}
ingredient.Close();
MSConnection.Close();
MySqlConnection.ClearAllPools();
}
Но столкнулся с тем, что не могу написать обработчик, в котором я ссылаюсь на ещё не созданные элементы на форме, т.к. они создаются только при запуске.
//Тот самый обработчик, который висит на кнопке
private void ПроверкаЧекбокс(object sender, RoutedEventArgs e)
{
if (checkBox2.IsChecked == true) MessageBox.Show("Выбран чекбокс " + checkBox2.Content);
}
Ошибка (Все ссылки на метод и обработчик есть, просто для удобочитаемости переименовал)
Как я могу решить данную проблему? Учитывая, что элементы должны создаваться динамически, т.е. после запуска программы, но как ссылаться на них в коде в обработчике кнопки я не понимаю.