PDA

View Full Version : update شدن ستون dataGrid با توجه به ستون دیگر



sara62
شنبه 24 مهر 1389, 16:06 عصر
سلام دوستان
من یه دیتا گرید دارم که بایند شده ویکی از ستوناش کلید خارجی از یه جدول دیگه
حالا من میخوام ستون دیگه رو با تو جه به اون کلید از یه جدول دیگه پر کنم
این کدو نوشتم اما جواب نداد

private void DataGrid1_LoadingRow(object sender, DataGridRowEventArgs e)
{
try
{
DataGridRow row=e.Row;
if (row.Header.ToString().Trim() == "منطقه".Trim())
{

( this.DataGrid1.Items[row.GetIndex()] as DataRowView)[3] = BLvw_RegionsInfos.GetRecord(Convert.ToInt16((this. DataGrid1.Items[e.Row.GetIndex()] as DataRowView)[2])).ToString();
}
}
catch (Exception)
{


}
}
خواهش میکنم کمکم کنید

mahdi7s
شنبه 24 مهر 1389, 18:17 عصر
سلام
متوجه منظورتان نشدم ...
یعنی می خواهید بجای یک ستون DataTable تان که مثلا کلیدی از جدول دیگر است مقداری از جدول مرتبط قرار دهید؟
اگر این چنین باشد دیگر نباید آن DataTable را مستقیم به DataGrid بایند در اصل باید یک کلاس جدید ایجاد کنید و آن خصیصه هایی که می خواهید در DataGrid تان نمایش دهید را در آن ایجاد و سپس یک لیست از این کلاس ایجاد کنید و اطلاعاتی را که می خواهید نمایش دهید را از دیتابیس واکشی و داخل این لیست بریزید و لیست را به DataGrid تان بایند کنید.

sara62
یک شنبه 25 مهر 1389, 00:33 صبح
سلام
متوجه منظورتان نشدم ...
یعنی می خواهید بجای یک ستون DataTable تان که مثلا کلیدی از جدول دیگر است مقداری از جدول مرتبط قرار دهید؟
اگر این چنین باشد دیگر نباید آن DataTable را مستقیم به DataGrid بایند در اصل باید یک کلاس جدید ایجاد کنید و آن خصیصه هایی که می خواهید در DataGrid تان نمایش دهید را در آن ایجاد و سپس یک لیست از این کلاس ایجاد کنید و اطلاعاتی را که می خواهید نمایش دهید را از دیتابیس واکشی و داخل این لیست بریزید و لیست را به DataGrid تان بایند کنید.
ممنون به خاطر جوابتون
بله درست متوجه شدید
اما در windowsApplicationکه قبلا استفاده میکردم این امکان وجود داشت یعنی یه متد داشت به نام cellFormating که میتونستیم ستونی از جدول رو آپدیت کنیم من فک کردم ایونت loadingRow این امکان رو به ما میده
یعنی راه دیگه ای نداره؟

mahdi7s
یک شنبه 25 مهر 1389, 10:17 صبح
یه متد داشت به نام cellFormating که میتونستیم
در WPF هم در Binding می توانید از Converter استفاده کنید ولی در برنامه شما استفاده از Converter ها کد نویسی را بیشتر می کند و نهایتا از نظر من کار درستی نیست...
در صورتی که می توانید این کارو راحت با ساخت یک کلاس یا یک DataTable دستی(یا استفاده از DynamicObject که در فریم ورک 4 اضافه شده) انجام دهید

یک کلاس با چند خصیصه عمومی ایجاد کنید بعد هم یک لیست از آن کلاس بسازید و اطلاعاتتان را از DataTable بخوانید و به آن لیست اضافه کنید و بایند کنید