Я создаю приложение CRUD, и в основном я хочу создать сетку данных, где у каждой строки есть своя кнопка, чтобы уменьшить значение одной ячейки (которая получает данные из SQL с помощью Entity Framework). Как будто работает код, работающий с базой данных, или я исправлю это позже, но моя проблема в том, как именно показать кнопку в сетке данных.
Показано так: System.Windows.Controls.Button
. Я не знаю, как это изменить.
Я искал эту проблему около 3 часов, и я не смог найти
удовлетворительный ответ, который помог бы мне.
Часть класса, ответственная за обработку данных
public Button SubstractByOne = new Button();
public LearnDayAdvenced(LearningDays learnDay)
{
SubstractByOne.Name = "substract";
SubstractByOne.Click += new RoutedEventHandler(Button_click);
}
protected void Button_click(object sender, EventArgs e)
{
SubstractTime();
}
И код, отвечающий за отображение и создание данных. (Я знаю, что я должен рефакторинг это, но в случае проблемы это так)
ICollection<LearnDayAdvenced> learnDayAdvenceds = new List<LearnDayAdvenced>();
foreach (var learningDay in learningDaysAsSource)
{
LearnDayAdvenced advencedLearnDay = new LearnDayAdvenced(learningDay);
learnDayAdvenceds.Add(advencedLearnDay);
}
DataTable learningDataTable = new DataTable("Learn Days");
learningDataTable.Columns.Add(new DataColumn("Subject name", typeof(string)));
learningDataTable.Columns.Add(new DataColumn("time left", typeof(double)));
learningDataTable.Columns.Add(new DataColumn("Substract by 1", typeof(Button)));
foreach (var learnDay in learnDayAdvenceds)
{
learningDataTable.Rows.Add(learnDay.LearnDay.subjectName, learnDay.LearnDay.learningTimeAmount, learnDay.SubstractByOne);
}
this.DataGrid.ItemsSource = learningDataTable.AsDataView();