mymina
چهارشنبه 19 تیر 1392, 10:54 صبح
سلام
من یک دیتا گرید در wpf ایجاد کردم و در هر ردیف یک چک باکس قرار داده ام حال می خواهم در برنامه تمام index سطر هایی که چک باکس آن کلیک خورده است را بدست بیاورم .
لطفا هرکسی اطلاعاتی دارد کمک کنه خیلی در گیرم
ali_md110
جمعه 21 تیر 1392, 16:25 عصر
فرض کنیم کلاسی داریم بنام person با عضوهای تعریف شده و یک سازنده که سه پارامتر میگیره
public class person
{
public int pid {get;set;}
public string pname {get;set;}
public bool pselect {get;set;}
public person(int id,string name,bool select)
{
pid = id;
pname = name;
pselect = select;
}
}
و یک فرم wpf داریم
در این فرم تابع از نوع ObservableCollection نوشته که کارش ریختن اطلاعات درون کالکشن و برگردوندن یک لیست جهت نمایش در دیتاگراید هست
public static ObservableCollection<person> Getperson()
{
ObservableCollection<person> var = new ObservableCollection<person>();
person row;
row = new person(1, "ali", false);
var.Add(row);
row = new person(2, "ebi", false);
var.Add(row);
row = new person(3, "reza", false);
var.Add(row);
return var;
}
در فرم لود جهت پر کردن دیتاگرید صدا میزنیم
this.dataGrid1.ItemsSource = Getperson();
و در یک حلقه for یا for each میتونیم به ردیفهای دیتاگراد دسترسی داشته باشیم
void GetDataGridRows()
{
List li = new List();
for (int i = 0; i < dataGrid1.Items.Count; i++)
{
if (((person)(dataGrid1.Items[i])).pselect == true)
{
MessageBox.Show(((person)(dataGrid1.Items[i])).pid.ToString());
}
}
}
میتونید بجای مسج باکس یک لیست یا آرایه را پر کنید
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.