datagrid获取所选单元格减去文本框

本文关键字:文本 单元格 获取 选单 datagrid | 更新日期: 2023-09-27 17:58:36

im试图从数据网格中选择一个单元格(列是电影的票和时间),并使用文本框减去票的数量,此时我可以减去所有票,但我想减去用户选择的票(im使用数据库中的wpf和linq)

private void CompleteBooking_Click(object sender, RoutedEventArgs e)
{
    try
    {
        //string current = (string)DvgFilmTime.SelectedItem;
        var query = from x in db.FilmDetails select x;
        foreach (var x in query)
        {
            x.Tickets -= Convert.ToInt32(tbxTicket.Text);
        }
        db.SubmitChanges();
        MessageBox.Show("Booking Completed");
     }
     catch (Exception)
     {
        MessageBox.Show("Error please select a number");
     }
}

datagrid获取所选单元格减去文本框

实际上,所提供的信息对于精确的代码来说是不够的。但是,假设DataGridItemsSource包含FilmDetail对象的集合,您可以尝试将SelectedItem强制转换为FilmDetail,而不是像您尝试的那样将String强制转换。

然后使用FilmDetail的唯一属性值(例如主键DetailId)来匹配和更新数据库中的相应行:

if(DvgFilmTime.SelectedItem != null)
{
    FilmDetail current = (FilmDetail)DvgFilmTime.SelectedItem;
    var filmDetail = (from x in db.FilmDetails 
                      where x.DetailId == current.DetailId
                      select x).FirstOrDefault();
    if(filmDetail != null)
    {
        filmDetail.Tickets -= Convert.ToInt32(tbxTicket.Text);
        db.SubmitChanges();
        MessageBox.Show("Booking Completed");
    } 
}