مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

amiramir

عضویت از 1393/10/10

مشکلی عجیب در آپدیت دیتا گرید در عمل ویرایش!!!

  • یکشنبه 13 اسفند 1396
  • 10:00
تشکر میکنم

با عرض سلام،ادب و احترام

من برنامه دارم که مبتنی بر پایگاه داده بوده و عملیات افزودن،حذف و ویرایش را انجام می دهد

برای آپدیت دیتا گریدم از کد زیر بهره می برم:

myDataGrid.ItemsSource = db.tblNames.ToList();

این کد در همان لحظه ای که داده ای را به دیتا گرید می افزایم یا داده ای را حذف می نمایم،تغییرات را در دیتا گرید اعمال می کند ولی در مورد ویرایش عمل نمی کند!!!باید حتما پنجره برنامه را بسته و دوباره باز کنم تا تغییر در داده ویرایش شده را ببینم!!!

کد من برای افزودن داده:

private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            db.pSave(txtName.Text,txtFamily.Text);
            myDataGrid.ItemsSource = db.tblNames.ToList();
            MessageBox.Show("OK");
        }

کد من برای ویرایش داده(در اینجا تنها عنصر با ID عدد 9 را ویرایش می نمایم.برای سادگی این کار را کردم):

private void btnEdit_Click(object sender, RoutedEventArgs e)
        {
            db.pEdit(9, txtName.Text, txtFamily.Text);
            myDataGrid.ItemsSource = db.tblNames.ToList();
            MessageBox.Show("OK");
        }

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 13 اسفند 1396
  • 10:09

مشکل از نمونه Context Entity است

به احتمال زیاد نمونه سازی دوباره انجام نمیشه و برای همین هست لیست آپدیت نمیشه

کاربر سایت

amiramir

عضویت از 1393/10/10

  • یکشنبه 13 اسفند 1396
  • 11:01

من حتی به روش LINQ به پایگاه متصل شدم.بازم همین مشکل برام پیش اومد!

البته من توی ویندوز فرم مشکلی ندارم.تنها در wpf این مشکل ایجاد میشه!!

به نظرتون چه کار کنم؟

کاربر سایت

haditg

عضویت از 1396/10/01

  • جمعه 18 اسفند 1396
  • 21:17

با سلام رویداد لود دیتا گرید را بایستی در رویداد window actived بنویسید.

 private void Window_Activated(object sender, EventArgs e)
        {
          
            datagrid.ItemsSource = db.Table_dar.ToList();
}
یا علی

کاربر سایت

vslearn

عضویت از 1395/11/05

  • چهارشنبه 23 اسفند 1396
  • 23:26

دوست عزیز بهترین روش این هستش که بعد هر عمل دیتاگرید ویو رو یه بار رفرش کنی که با کدی که دیتای  جدول رو نمایش میده با همون یک بار دیگه جدول مورد نظر رو دیتاش رو نشون بده

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

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)