خسته نباشید
چطوری میشود در محیط wpf یک سطر از DataGrid را انتخاب کرد برای ویرایش یا حذف سطر مورد نطر با تکنولوژی EF
با سپاس
انتخاب آیدی سطر در دیتاگرید در wpf کار خیلی ساده ای هست. با مثال این کار رو براتون توضیح میدم. فرض کنید فرم زیر رو در WPF دارید.
خب حالا میخوایم هر سطری رو که انتخاب کردیم و روی دکمه ویرایش کالا کلیک کردیم ID اون کالا انتخاب بشه و بتونیم در یک پنجره دیگه کالا رو ویرایش کنیم. در ابتدا باید رویداد Click دکمه ویرایش رو ایجاد کنیم. بنابراین در صفحه طراحی دکمه "ویرایش کالا" رو انتخاب میکنیم و رویداد Click رو ایجاد می کنیم.
<Button x:Name="btn_editproduct" Content="ویرایش کالا Click="btn_editproduct_Click"></Button>
خب حالا در BackEnd هم این رویداد باید ایجاد شده باشه. کافیه کدهای زیر رو بنویسیم تا آیدی کالا موقع انتخاب سطر و زدن دکمه "ویرایش کالا" انتخاب بشه.
private void btn_editproduct_Click(object sender, RoutedEventArgs e)
{
object item = dataGrid_product.SelectedItem;
int Id = Convert.ToInt32((dataGrid_product.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text);
MessageBox.Show(Id);
}
خب با اجرای برنامه و انتخاب یک سطر و کلیک کردن روی دکمه "ویرایش کالا" آیدی کالا رو میتونید دریافت کنید.
نکته : دقت کنید در کدها از SelectedCells[0] استفاده شده. بنابراین وقتی میخواید DataGrid رو از اطلاعات پر کنید باید Id رو اولین ستون قرار بدید.
ممنون میشه در مورد این خط کد توضیح بدین تا برام قابل فهم باشه مخصوصا در قسمت TextBlock
int Id = Convert.ToInt32((dataGrid_product.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text);
سلام. این روشی که اسفاده میکنید روش استانداردی نیست. شما باید مقادیر رو از دیتاسورس استخراج کنید نه از سلولهای دیتاگرید! برای این کار از روش زیر استفاده کنید.
var Id =(MyDataGrid.SelectedItem as Persons).PersonID;
در کد بالا MyDataGrid همون نام دیتاگرید شماست. Persons همون ویوی هست که به دیتاگرید وصل کردید. و PersonID هم فیلد آی دی هست که میخواهید بدست بیارید.
دقت کنید که در کد بالا میتونید حتی ستونهایی که در دیتاگرید نیست یا مخفی هست رو هم بدست بیارید.
private void btn_delete(object sender, RoutedEventArgs e)
{
var Id = (dgvtell.SelectedItem as Vw_booktell).Id;
var result = DB.tbl_booktelphone.SingleOrDefault(p => p.Id == Id);
if (result != null)
{
MessageBox.Show("آیا از حذف فرد مورد نظر اطمینان دارید؟", "هشدار",
MessageBoxButton.YesNo);
DB.tbl_booktelphone.Remove(result);
}
DB.SaveChanges();
showall();
}
اینطوری تونستم مشکل رو حل کنم حالا چقدر اصولیه نمیدونم
تاریخ :
1398/10/03
- ساعت :
10:47:00 PM
- بازدید :
5204
- پاسخ :
8
|
تاریخ :
1401/01/26
- ساعت :
12:14:00 PM
- بازدید :
2897
- پاسخ :
1
|
تاریخ :
1398/10/22
- ساعت :
12:44:00 PM
- بازدید :
3038
- پاسخ :
2
|
تاریخ :
1398/08/14
- ساعت :
10:54:00 AM
- بازدید :
3052
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
457
- پاسخ :
1
|
تاریخ :
1398/09/16
- ساعت :
11:41:00 AM
- بازدید :
4401
- پاسخ :
1
|
تاریخ :
1398/09/07
- ساعت :
02:15:00 PM
- بازدید :
4020
- پاسخ :
5
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
835
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3268
- پاسخ :
2
|
تاریخ :
1403/04/12
- ساعت :
07:27:00 PM
- بازدید :
771
- پاسخ :
0
|
تاریخ :
1403/11/03
- ساعت :
07:34:00 PM
- بازدید :
55
- پاسخ :
0
|
تاریخ :
1399/12/20
- ساعت :
10:32:00 AM
- بازدید :
2518
- پاسخ :
1
|
تاریخ :
1398/08/09
- ساعت :
07:44:00 PM
- بازدید :
4857
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:30:00 PM
- بازدید :
2575
- پاسخ :
1
|
تاریخ :
1403/11/03
- ساعت :
07:21:00 PM
- بازدید :
42
- پاسخ :
0
|
تاریخ :
1403/10/22
- ساعت :
12:29:00 PM
- بازدید :
86
- پاسخ :
1
|
تاریخ :
1399/09/20
- ساعت :
01:21:00 PM
- بازدید :
6647
- پاسخ :
1
|
تاریخ :
1403/11/02
- ساعت :
08:17:00 PM
- بازدید :
50
- پاسخ :
0
|
تاریخ :
1398/10/15
- ساعت :
08:02:00 PM
- بازدید :
2730
- پاسخ :
1
|
تاریخ :
1398/10/19
- ساعت :
02:01:00 PM
- بازدید :
3091
- پاسخ :
2
|