نوشته شده توسط
ordebehesht
برای چی تبدیل میکنه منظورم هدف چیه از این کار
اگه با مشخصه های DataSource، DataMember و... لیست باکس و کمبو باکس آشنایی داشته باشین، این مشخصه ها مربوط به نمایش داده در این کنترل ها هستن.
کلاس CheckedListBox، از کلاس ListBox مشتق شده که کارش نمایش لیستی از چک باکس هاست.طراحی این کلاس به گونه ای بوده که مشخصه های DataSource، DataMember که مربوط به کلاس پدر (ListBox) هستن نا مربوط شناخته شدن و از دید کاربر کلاس، پنهان شدن. تعریف کلاس CheckedListBox:
public class CheckedListBox : ListBox
{
..
..
..
// Summary:
// Gets or sets the data source for the control. This property is not relevant
// for this class.
//
// Returns:
// An object representing the source of the data.
[EditorBrowsable(EditorBrowsableState.Never)]
[Browsable(false)]
public object DataSource { get; set; }
..
..
همونطور که میبینید مشخصه DataSource با استفاده از EditorBrowsable، نمایشش غیر فعال شده.حالا کدی که شما گذاشتین:
((ListBox)chklstboxItems).DataSource = ObjDTable;
داره با Cast کردن شئ به کلاس پدرش (ListBox) این محدودیت رو دور میزنه تا بتونه به مشخصه DataSource دسترسی پیدا کنه. (نمیدونم کار مناسب و بدون اشکالی باشه یا نه.اگه مشکلی نبود طراح کلاس این مشخصه ها رو مخفی نمیکرد).
البته باید بگم این مشخصه ها فقط از دید کاربر (از طریق Editor) مخفی شدن وگرنه بدون Cast هم میشه ازشون استفاده کرد فقط تو لیست مشخصه های شی در Editor نمیان وگرنه Compiler خطا نمیده:
chklstboxItems.DataSource = ObjDTable;