سلام
یه پروژه جدیدو فرض کنید که با استفاده از متد زیر اطلاعاتی رو از یه جدول sql توی یه دیتا گرید نشون میدیم private void ShowStudentTable()
{
var query = database.Database.SqlQuery<vw_Students>("select * from vw_Students where StudentActive = 1");
var u = query.ToList();
dataGrid_all.ItemsSource = u;
lbl_addcount.Content = dataGrid_all.Items.Count;
}
یک نکته ای که هست اینه که من دیتا گریدم یه اندازه خاصی رو داره و اگر اطلاعاتمون زیاد بشه برای دیدن خود کاربر نیاز داره که با استفاده از اسکرول خود دیتا بقیه اطلاعات رو ببینه
حال من میخوام با استفاده از کد زیر که توی رویداد کلیک تعریف شده تک تک رکورد ها رو به فرم دیگه ارسال کنم ولی مشکل اینجاست که برنامه فقط اونایی رو ارسال میکنه که توی محدوده اندازه خود دیتا گرید هست. و بعد از محدوده رو ازسال نمیکنه و پیغام null رو نشون میده.من تست کردم اندازه دیتا گرید رو بزرگ کردم برنامه کامل اجرا شد و لی خب ما نمیتونیم این کارو کنیم چون حجم اطلاعات ممکنه خیلی زیاد بشه
private void btn_newdeclaration_Click(object sender, RoutedEventArgs e)
{
int count = dataGrid_all.Items.Count;
for(int i = 0;i<=count -1;i++)
{
win_GrandActive w_ga = new win_GrandActive();
w_ga.GrandID = GrandID;
w_ga.StudentID = Convert.ToInt32((dataGrid_all.Columns[0].GetCellContent(dataGrid_all.Items[i]) as TextBlock).Text);
w_ga.StudentName = (dataGrid_all.Columns[1].GetCellContent(dataGrid_all.Items[i]) as TextBlock).Text;
w_ga.ShowDialog();
}
}