PDA

View Full Version : مشکل در خواندن اطلاعات آیتم انتخاب شده دیتا گرید



«Hossein»
چهارشنبه 21 فروردین 1398, 19:33 عصر
با سلام

من یک کلاس به صورت زیر تعریف کردم


public class gridsource
{


public int ID { get; set; }
public string CustomerName { get; set; }
public int Amount { get; set; }
public string Date { get; set; }
public string Dis { get; set; }
}


تمام این پروپرتی ها رو به دیتا گرید بایند کردم و ستون اول که آیدی هست رو مخفی کردم .

یک لیست از روی کلاس بالا میسازم و بعد با اطلاعاتی که از بانک میگیرم پرش میکنم

تا اینجا مشکلی نیست و هر فیلتری بخوام رو میتونم روی اطلاعات اعمال کنم ولی وقتی میخوام آیدی شخص رو از گرید بخونم با خطای زیر مواجه میشم

150004

در این خطا نوشته که فیلد آی دی طوی لیست وجود نداره

اما پس از اینکه فیلد ای دی رو نمایش دادم همانطور که میبینید فیلد آی دی به گرید افزوده شده اما هنگام خوندن میگه وجود نداره
150005

من از کد زیر برای خواندن ای دی استفاده کردم
البته در دیگر موارد هم از همین کد استفاده کردم ولی اولین باره این خطا رو میده



if (DataGrid.SelectedItem != null)
{
dynamic dellist = DataGrid.SelectedItem;
int AccountingID = dellist.ID;
if (MessageBoxResult.Yes == MessageBox.Show("آیا از حذف این تراکنش مطمعن هستید؟", "حذف تراکنش",
MessageBoxButton.YesNo, MessageBoxImage.Question))
{
using (UnitOfWork db = new UnitOfWork())
{
db.AccountingRepository.DeleteByID(AccountingID);
filter();
}
}
}


میشه لطفا زود راهنمایی کنید

با تشکر

barnamenevisjavan
چهارشنبه 21 فروردین 1398, 21:55 عصر
با سلام

من یک کلاس به صورت زیر تعریف کردم


public class gridsource
{


public int ID { get; set; }
public string CustomerName { get; set; }
public int Amount { get; set; }
public string Date { get; set; }
public string Dis { get; set; }
}


تمام این پروپرتی ها رو به دیتا گرید بایند کردم و ستون اول که آیدی هست رو مخفی کردم .

یک لیست از روی کلاس بالا میسازم و بعد با اطلاعاتی که از بانک میگیرم پرش میکنم

تا اینجا مشکلی نیست و هر فیلتری بخوام رو میتونم روی اطلاعات اعمال کنم ولی وقتی میخوام آیدی شخص رو از گرید بخونم با خطای زیر مواجه میشم

150004

در این خطا نوشته که فیلد آی دی طوی لیست وجود نداره

اما پس از اینکه فیلد ای دی رو نمایش دادم همانطور که میبینید فیلد آی دی به گرید افزوده شده اما هنگام خوندن میگه وجود نداره
150005

من از کد زیر برای خواندن ای دی استفاده کردم
البته در دیگر موارد هم از همین کد استفاده کردم ولی اولین باره این خطا رو میده



if (DataGrid.SelectedItem != null)
{
dynamic dellist = DataGrid.SelectedItem;
int AccountingID = dellist.ID;
if (MessageBoxResult.Yes == MessageBox.Show("آیا از حذف این تراکنش مطمعن هستید؟", "حذف تراکنش",
MessageBoxButton.YesNo, MessageBoxImage.Question))
{
using (UnitOfWork db = new UnitOfWork())
{
db.AccountingRepository.DeleteByID(AccountingID);
filter();
}
}
}


میشه لطفا زود راهنمایی کنید

با تشکر
سلام اول این مورد رو چک کنید اگر نشد راه حل دوم رو انجام بدید
راه حل اول: چک کنید وقتی میخواید ردیف رو اطلاعاتش رو بخونین اون ردیف سلکت شده باشه
راه حل دوم : به جای کد خودتون از این کد استفاده کنید
dynamic dellist = DataGrid.SelectedItems[0];

Mahmoud.Afrad
پنج شنبه 22 فروردین 1398, 14:55 عصر
gridsource dellist = DataGrid.SelectedItem as gridsource;