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

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

کاربر سایت

farzadini

عضویت از 1395/11/01

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

  • یکشنبه 9 اردیبهشت 1397
  • 22:55
تشکر میکنم
وقت اساتید بخیر سوال ابتدائی دارم. در ویندوز فرم برای سراغ گرفتن ردیف دیتاگرید از این کد استفاده میشد 
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 نیست که بعد از دیتا گرید بیاد.

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • یکشنبه 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

عضویت از 1395/11/01

  • شنبه 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'

کاربر سایت

salman_b

عضویت از 1396/02/18

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

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

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

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

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

کاربر سایت

dgmuhammad

عضویت از 1394/02/08

  • جمعه 18 مرداد 1398
  • 17:42

سلام من الان مشکل دارم با این کد حلقه فقط محدوده نمایش دیتا گرید را خوند ارور میده این هم ارور

گرید ویو را کوچک و بزرگ کنم تعداد خوندن بیشتر می شود و ایراد می گیره

An exception of type 'System.NullReferenceException' occurred in frosch.exe but was not handled in user code

Additional information: Object reference not set to an instance of an object.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)