PDA

View Full Version : RunTime ComboBoxBinding



programmable
جمعه 22 خرداد 1388, 13:14 عصر
سلام

کومبوباکسم رو در زمان اجرا به یه List بایند میکنم. چجوری، اینجوری:


combo.DataSource=list;
combo.DisplayMember="Name";


خوب با این کار میتونم هنگام اجرا محتویات رکورد های در فیلد "Name" رو ببینم . برای امکان تغییر اونها اومدم از کد زیر استفاده کردم :


combo.DataBindings.add(new Binding ("Text",bindingsource,"Name",true));


که البته BindongSource به List بایند شده .
ولی هنگام نمایش فرم وقتی بین آیتمهای کومبوباکس جابجا میشم تکست ها جا بجا میشن! چرا؟ مثلا اگه حسن ، علی ، رضا باشه بعد از جا به جایی بین آیتم ها میشه علی ، علی ، رضا!
راستی اینم بگم که با هر رویداد SelectedIndex_change کومبو اینجوری هندل میکنمش:


bindingsource.position=combo.SelectedIndex;

مشکل کجاست؟
امیدوارم هدفم رو متوجه شده باشید .
میخوام کومبو باکسم هم بتونه منو به رکورد های مختلفم ببره و هم کمک کنه فیلد "NAme " رو تغییر بدم.
ممنون

SMRAH1
جمعه 22 خرداد 1388, 13:38 عصر
سلام

چون داری از یک شی برای گرفتن اطلاعات استفاده می کنی،هر تغییری در شی اول ،مستقیما در شی دوم خودش رو نشون می ده.
راه حل : یک شی دیگه برای Combo از روی لیست بساز (اگر پایگاه داده است ،یک SQlCommand و DataTabel مستقل باید درست کنی).

موفق باشی

programmable
جمعه 22 خرداد 1388, 14:04 عصر
ضمن تشکر از پاسخ شما
دوتا مسأله رو از پاسخ شما متوجه نمیشم :
1- نحوه حل مشکل من با استفاده از راه حل شما
2- نحوه پیاده سازی راه حل شما!

SMRAH1
جمعه 22 خرداد 1388, 18:30 عصر
یک نمونه کد بگذار تا دقیقا بشه راهنمایی کرد!

programmable
جمعه 22 خرداد 1388, 20:12 عصر
من کد بذارم ؟ شما راه حل ارایه میدی! :قهقهه:
من که مشکلم رو کاملا توضیح دادم .
ممنون