PDA

View Full Version : انالیز این تکه کد (نوع تعریف)



ordebehesht
پنج شنبه 07 آذر 1392, 23:41 عصر
یکی بهم بگه این تکه کد مخصوصا قسمتهایی که با زیر خط مشخص شده یعنی چی این چه جور تعریفی هستش گیجم کرده ممنون


((ListBox)chklstboxItems).DataSource = ObjDTable;
((ListBox)chklstboxItems).ValueMember = "Coding_Kala";
((ListBox)chklstboxItems).DisplayMember = "Name_Kala";

dashkeyvan
جمعه 08 آذر 1392, 02:02 صبح
شما یک لیست باکس داری که باید منبع داده هاش معلوم بشه یعنی همون ( DataSource)

و باید ارزش اعضا یا شاخه های داخلش معلوم بشه (ValueMember)

وباید مقدار نمایشی اون هم معلوم بشه (DisplayMember)

که او.ن سه خط داره از یه ستون تو دیتا بیس داده هارو میریزه تو یه لیست باکس

ordebehesht
جمعه 08 آذر 1392, 11:45 صبح
نه منظورم اولش هستش اونجا که نوشه datarowview اونجارو میگم

amir200h
جمعه 08 آذر 1392, 12:00 عصر
نه منظورم اولش هستش اونجا که نوشه datarowview اونجارو میگم

کجاش نوشته datarowview ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟

ordebehesht
جمعه 08 آذر 1392, 13:01 عصر
ببخشید منظورم listbox هستش

fmehrvarzi
جمعه 08 آذر 1392, 18:16 عصر
((ListBox)chklstboxItems) میاد عمل کستینگ انجام میده
مثل

string str = "3";
object obj = str;
int i=(int)obj;

dashkeyvan
جمعه 08 آذر 1392, 20:14 عصر
بله حق با دوستمون هست تایپ کستینگ یعنی سمت چپ رو نوعش رو به لیست باکس تغییر میده

ordebehesht
جمعه 08 آذر 1392, 22:55 عصر
برای چی تبدیل میکنه منظورم هدف چیه از این کار

plus
جمعه 08 آذر 1392, 23:31 عصر
برای چی تبدیل میکنه منظورم هدف چیه از این کار
اگه با مشخصه های 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;