PDA

View Full Version : سوال: اختصاص دادن لیست یک ComboBox به یک ComboBox دیگر



mahdi_armed
سه شنبه 12 دی 1391, 22:51 عصر
سلام
میخوام وقتی روی دکمه کلیک میکنم تمام آیتم های ComboBox اول , به لیست آیتم های ComboBox دوم اضافه بشه
چه کدی رو باید بزنم ؟

مهرداد صفا
سه شنبه 12 دی 1391, 23:22 عصر
سلام
به این صورت:

combo2.Items.AddRange(combo1.Items.Cast<object>().ToArray());

mahdi_armed
چهارشنبه 13 دی 1391, 10:50 صبح
سلام
به این صورت:

combo2.Items.AddRange(combo1.Items.Cast<object>().ToArray());

خیلی ممنون دوست گلم
فقط یه سوال
Items.Cast<object>() کارش چیه دقیقاً ؟
چرا در آخر مقدار بدست اومده رو به آرایه تبدیل کردی ؟

یا علی

مهرداد صفا
چهارشنبه 13 دی 1391, 12:16 عصر
خیلی ممنون دوست گلم
فقط یه سوال
Items.Cast<object>() کارش چیه دقیقاً ؟
چرا در آخر مقدار بدست اومده رو به آرایه تبدیل کردی ؟

یا علی
سلام. خواهش میکنم
متود Combobox.ObjectCollection.AddRange میتواند ( فقط) یک آرایه از Object را به Item های کامبو اضافه کند.
برای اینکه Item های Combo2 را از طریق AddRange به Combo1 اضافه کنیم باید آنها را از Combobox.ObjectCollection به Object[] تبدیل کنیم.
متود Cast<Object> مجموعه را به IEnumerable<Object> تبدیل میکند با این کار اگر Item های Combo2 از نوع String و یا Int باشند به عنوان Object در نظر گرفته می شوند، حالا یک IEnumerable<Object> داریم که در آخر با متد ToArray به Object[] تبدیل شده و به AddRange فرستاده میشود.


کد زیر هم در این مورد دقیقا شبیه به کد بالا عمل میکند:

combo2.Items.AddRange(combo1.Items.OfType<object>().ToArray());