PDA

View Full Version : سوال: مشکل فوری (انتخاب چند سطر در dataGridViwe با CheckBox در Wpf )



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());

}
}
}
میتونید بجای مسج باکس یک لیست یا آرایه را پر کنید
موفق باشید