مرجع تخصصی برنامه نویسان

بزرگترین انجمن برنامه نویسان فارسی زبان

در WPF چیزی به اسم ROW نیست که بعد از دیتا گرید بیاد.

یکشنبه, 09 اردیبهشت 1397 22:55

در WPF چیزی به اسم ROW نیست که بعد از دیتا گرید بیاد.

وقت اساتید بخیر سوال ابتدائی دارم. در ویندوز فرم برای سراغ گرفتن ردیف دیتاگرید از این کد استفاده میشد 
dataGridView1.Rows[i].Cells[2].Value

مثل مثال زیر


 for(int i=0; i< dataGridView1.Rows.Count;i++)
            {
                SqlDataAdapter da = new SqlDataAdapter("insert into demo values('" + dataGridView1.Rows[i].Cells[0].Value + "')",sconn);
                    da.Fill(ds, "main");

}

حالا در WPF چیزی به اسم ROW نیست که بعد از دیتا گرید بیاد.

یکشنبه, 16 اردیبهشت 1397 11:42

سلام

روش های زیادی داره بدست آوردن یک سلول از دیتاگرید

باید باهاش مثل یه object برخورد کنید

بهتره سطر انتخابی رو به مدلی که اون رو به دیتاگرید bind کردید cast کنید.

دو قطعه کد زیر دو نمونه خوب میتونن باشن واستون:

            //راه آبجکتی
            for(int i = 0; i < dataGrid.Items.Count; i++)
            {
                var selectedItem = dataGrid.Items[i];
                var model =(Model)selectedItem;
                //عملیات رو روی شی مورد نظر انتخاب شده انجام دهید
            }

            //راه شبیه به راه شما 
            for (int i = 0; i < dataGrid.Items.Count; i++)
            {
                var row = (System.Data.DataRow)dataGrid.Items[i];
                string value = row["columnName"].ToString();
                //یا
                string value = row[columnIndex].ToString();
                //عملیات رو روی سلول مورد نظر انتخاب شده انجام دهید
            }

کسانی که از این پست تشکر کرده اند : farzadini,
شنبه, 22 اردیبهشت 1397 22:41

البته استاد عزیز روی این خط خطا میده

var row = (System.Data.DataRow)dataGrid.Items[i];

Unable to cast object of type 'DataModelLayer.Vw_DD_MM' to type 'System.Data.DataRow'

شنبه, 22 اردیبهشت 1397 23:05

من معذرت میخوام از شما

کد زیر رو خودم در برنامه استفاده کردم و جواب میده

SelectedItem رو باید در حلقه ای تغییر بدین و کل دیتاگرید رو بخونید

        private string param(int i)
        {
            object item = dataGrid.SelectedItem;
            return (dataGrid.SelectedCells[i].Column.GetCellContent(item) as TextBlock).Text;
        }

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید