PDA

View Full Version : بدست آوردن مقدار یک ستون در datagrid



mymina
شنبه 15 تیر 1392, 12:24 عصر
سلام
چگونه در wpf می توان در dataGrid مقدار یک ستون از سطری که در حالت انتخاب است را بدست آورد.

معادل کدی که در C#‎‎‎‎ می نویسیم ولی این کد در wpf جواب نداد


private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{ textBox1.Text = dataGrid1.SelectedItem[0].ToString();// TextSelection; }

ali_md110
جمعه 21 تیر 1392, 15:41 عصر
بستگی داره دیتاگرایدتون رو با چه روشی پر کرده باشید دیتاست هست یا از orm ها استفاده کردید
در کل ردیفهای دیتاگراید در حالت استفاده از دیتاست یک DataRowView بر میگردونه
اگر دیتاست بوده

string obj= ((DataRowView)(datagrid1.SelectedItem))["فیلد مورد نظر"].ToString();

اگر از ORM ها یا Objectها جهت پر کردن دیتاگراید استفاده کردید
از
string obj = ((myobjData)(datagrid1.SelectedItem)).LastName;
استفاده کنید
myobjData کلاسی است که اعضا درونش تعریف شده و دیتاگراید به اون بایند شده

hesam_mahmoodi
سه شنبه 21 آبان 1392, 15:28 عصر
من هر دو روش رو امتحان کردم ولی نشد.
من از EF برای پر کردنش استفاده کردم.


DBEntities db1 = new DBEntities();
DG1.ItemsSource = db1.TblPs.ToList();

hesam_mahmoodi
پنج شنبه 23 آبان 1392, 22:34 عصر
کسی نبود جواب بده!؟

helpsos
جمعه 24 آبان 1392, 15:24 عصر
سلام
چگونه در wpf می توان در dataGrid مقدار یک ستون از سطری که در حالت انتخاب است را بدست آورد.

معادل کدی که در C#‎‎‎‎‎‎ می نویسیم ولی این کد در wpf جواب نداد


private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{ textBox1.Text = dataGrid1.SelectedItem[0].ToString();// TextSelection; }

سلام
فکر کنم شما باید از این روش استفاده نمایید و به نحوه ی پر شدن دیتاگرید هم ربطی نداره.
ستون های دیتاگرید که به این صورت bind میشه
<DataGridTextColumn Binding="{Binding LastName}" Header=" نام خانوادگی "/>

حالا خاصیت Text را برای TextBox به صورت زیر قرار دهید.
Text="{Binding LastName}"
LastName نام ستون مورد نظر شما در datagrid است.
حالا کافیه که در dataGrid1_SelectionChanged از کد زیر استفاده کنی:
private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
txtlnameSearch.DataContext =dataGrid1.SelectedItem;
MessageBox.Show(txtlnameSearch.Text);
}

حالا اگه مقادیر چندتا ستون یا همان سلول در حالت انتخاب رو خواستی باید برای هر کدام یه تکست باکس بذاری و بعد هم کلشون رو بذاری داخل یه شی Grid و بیای و به صورت زیر عمل کنی:
private void dataGrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
GridSearch.DataContext =dataGrid1.SelectedItem;
MessageBox.Show(txtlnameSearch.Text);
}


امیدوارم که به دردت بخوره

msn2msn
یک شنبه 03 آذر 1392, 10:45 صبح
اینو امتحان کن:
TextBlock x = dgv.Columns[columnNumber].GetCellContent(dgv.Items[rowNumber]) as TextBlock
txt1.Text = x.Text