View Full Version : مبتدی: به دست آوردن سلولی که روی آن کلیک شده در Datagrid
Shahab_H
چهارشنبه 07 مهر 1389, 23:12 عصر
با سلام
در دیتا گرید چطوری میشه سلولی که روش کلیک شده رو پیدا کرد منظورم شماره ی سطر و ستونشه.
و یه سوال دیگه! چه طوری میشه مثلا اطلاعاتی که تو سطر سوم هست رو سلول به سلول به خصوصیات یک شی داد مثلا سطر 3 ستون 0 به نام ستون 1 به فامیل و ...
farashah_jalal
پنج شنبه 08 مهر 1389, 07:53 صبح
Convert.ToInt16(((System.Data.DataRowView)(DgPeopl e.SelectedValue)).Row.ItemArray[0]);
item arrayمربوط میشه به مقدار ستون سطر انتخاب شده.
مثلا اگه datarowشامل id,name,family باشد itemarray[0]fمقدار id رو بر می گردونه
Shahab_H
پنج شنبه 08 مهر 1389, 21:35 عصر
لطفا پست پایین رو ببینید
Shahab_H
جمعه 09 مهر 1389, 11:58 صبح
در ایونت Selection cells changed کد شما رو به این صورت استفاده کردم
a= Convert.ToInt32(((System.Data.DataRowView)(dataGri d1.SelectedValue)).Row.ItemArray[0]); که a از نوع int تعریف شده ولی باز این ارور رو در موقع اجرا داد
Object reference not set to an instance of an object.
علتشم اینه که مقدار Selectedvalue رو null بر میگردونه در صورتی که من روی خونه ای کلیک کردم که مقدار داره!
aghayex
جمعه 09 مهر 1389, 17:28 عصر
این مشکلتو حل میکنه
http://www.barnamenevis.org/forum/showthread.php?t=214693
Shahab_H
جمعه 09 مهر 1389, 18:12 عصر
این مشکلتو حل میکنه
http://www.barnamenevis.org/forum/showthread.php?t=214693
ممنون از کد اول استفاده کردم همون exception قبلی رخ میده:ناراحت:
aghayex
جمعه 09 مهر 1389, 18:35 عصر
کد xaml مربوط به datagrid رو بذار
Shahab_H
جمعه 09 مهر 1389, 19:54 عصر
<DataGrid AutoGenerateColumns="True" Height="200" Name="dataGrid1" Width="610" HorizontalAlignment="Left" VerticalAlignment="Top" Background="{x:Null}" SelectionMode="Single" SelectionUnit="Cell" SelectedCellsChanged="dataGrid1_SelectedCellsChanged" />
aghayex
جمعه 09 مهر 1389, 21:23 عصر
<DataGrid AutoGenerateColumns="True" Height="200" x:Name="dataGrid1" Width="610" HorizontalAlignment="Left" VerticalAlignment="Top" MouseDoubleClick="dataGrid1_MouseDoubleClick"/>
Shahab_H
جمعه 09 مهر 1389, 21:49 عصر
ممنون از لطفتون
کدی که گذاشته بودین رو استفاده کردم ولی بازم همون مشکل قبلی پیش اومد اینم تصویرش
http://img693.imageshack.us/img693/7237/errorwj.jpg
aghayex
جمعه 09 مهر 1389, 23:07 عصر
dr[0] اینو این طور بنویس dr[0].ToString()
عکس اون کد xaml رو هم بذار
برو رو منوی build گزینه run code analysis on accounting رو بزن چون بعضی موقع برنامه گیرهای مزخرفی رو میده با این گزینه یه بازنگری کلی تو تمام کد ها می کنه
Shahab_H
یک شنبه 11 مهر 1389, 20:35 عصر
جواب رو پیدا کردم میذرام دوستانم استفاده کنن
private void dataGrid1_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
var item = e.AddedCells[0];
{
var col = item.Column as DataGridColumn;
var fc = col.GetCellContent(item.Item);
if (fc is CheckBox)
{
}
else if (fc is TextBlock && col.DisplayIndex == 0)
{
textBlock1.Text = (fc as TextBlock).Text;
}
}
}
multiman
پنج شنبه 29 اردیبهشت 1390, 12:18 عصر
برای بدست آوردن سطر انتخابی از این کد استفاده کنید(int currentrowindex= dataGrid1.Items.IndexOf(dataGrid1.CurrentItem
برای بدست آوردن ستون انتخابی از این کد استفاده کنید DataGridCellInfo cell = new DataGridCellInfo();
cell = datagridmatric.CurrentCell;
if (cell.Column == null ) return
indexcurrentcolumds = cell.colums.displyindex;
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.