مشکلم رو پیدا کردم، اینکه چرا فقط محتویات رکورد اول رو نشون میده و روی رکوردهای بعدی عمل نمیکنه، چون در در خط زیر datagridview رو به صورت زیر بایند کردم :
this.dataGridView1.DataSource = this.dt.DefaultView;
یعنی از خاصیت DefaultView استفاده کردم، در صورتی که در تابع BindData آبجکت dt رو به صورت زیر آوردم :
this.txt_customerID.DataBindings.Add("Text", this.dt, "customerID");
با اصلاح کردن تابع BindData به صورت زیر :
private void BindData()
{
this.txt_customerID.DataBindings.Clear();
this.txt_companyName.DataBindings.Clear();
this.txt_city.DataBindings.Clear();
this.txt_country.DataBindings.Clear();
this.txt_customerID.DataBindings.Add("Text", this.dt.DefaultView, "customerID");
this.txt_companyName.DataBindings.Add("Text", this.dt.DefaultView, "companyName");
this.txt_city.DataBindings.Add("Text", this.dt.DefaultView, "city");
this.txt_country.DataBindings.Add("Text", this.dt.DefaultView, "country");
}
و فراخوانی اون در رویداد load مربوط به فرمم، مشکل حل شد و نیازی به فراخوانی مجدد اون در این رویداد نیست :
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
this.BindData();
}
اینم یه تجریه بود که شاید شما هم باهاش برخورد نداشتید، به هر صورت از توجهتون ممنون.