PDA

View Full Version : ایجاد Property برای Component با قابلیت گسترش در زمان دیزاین، Expandable Property



alexmcse
شنبه 26 دی 1394, 13:10 عصر
باسلام

نمی دانم چطور پروپرتی ها را ایجاد کنم
لطفا راهنمایی کنید
این کامپوننت از گرید ویو ارث مبرد

عکس زیر

http://s7.picofile.com/file/8233695700/Untitled.png

تشکر
:تشویق::تشویق::تشویق:

nunegandom
یک شنبه 27 دی 1394, 16:41 عصر
سلام اینو ببین (http://barnamenevis.org/showthread.php?488237-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AE%D8%A7%D8%B5%DB%8C%D8%AA(Property)-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%A8%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C)

alexmcse
یک شنبه 27 دی 1394, 21:48 عصر
سلام اینو ببین (http://barnamenevis.org/showthread.php?488237-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AE%D8%A7%D8%B5%DB%8C%D8%AA(Property)-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C-%D8%A8%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C)

سلام
پروپرتی های یک کلاس رو میخواهم به کامپوننت که از گرید ویو به ارث برده است اضافه کنم
در تاپیک بالا فقط یک پراپرتی به کامپوننت اضافه شده است نه پراپرتی های یک کلاس
(تمام پراپرتی های درون یک کلاس )

nunegandom
یک شنبه 27 دی 1394, 22:19 عصر
بفرمایید :) کافیه ارث بری انجام بدید

alexmcse
چهارشنبه 30 دی 1394, 23:18 عصر
بفرمایید :) کافیه ارث بری انجام بدید

دوست عزیز پروژه شما رو دیدم شما یک پروپرتی اضافه کردید نه یک کلاس با تمام پراپرتی های آن
اگر یک کلاس به کامپوننت اضافه شودباید در کنار آن علامت + وجود داشته باشد

Mahmoud.Afrad
پنج شنبه 01 بهمن 1394, 01:18 صبح
https://msdn.microsoft.com/en-us/library/system.componentmodel.expandableobjectconverter.as px
https://msdn.microsoft.com/en-us/library/system.componentmodel.typeconverter.aspx

ROSTAM2
پنج شنبه 26 آبان 1401, 20:22 عصر
سلام به همه.

من یک کامپوننت دارم با دو فقره ProvideProperty برای اشیاء فرم که کامپوننت به هر دوی اونها نیاز داره:

154217

می خوام بدونم آیا این امکان وجود داره که بصورت یک خصوصیت Expandable برای اشیاء نمایش داده بشن؟!

شبیه به خصوصیت FlatAppearance و ...:

154218

ROSTAM2
جمعه 27 آبان 1401, 09:09 صبح
سلامی دوباره.
بالاخره موفق شدم ProvideProperty های کامپوننت رو بصورت Expandable در بیارم و به درستی مقادیرشون در Designer ذخیره سازی بشه.

154222

چیزی که هست به همون شیوه Expand کردن خصوصیت های معمولی هست با این تفاوت که TypeConverterAttribute رو به کلاسی می دیم که مقدار ProvidePrioperty رو تشکیل میده.
و ی نکته خیلی مهم اینه که برای ذخیره تغییرات ProvideProperty ها باید اونها رو هم بصورت پروواید برای کلاس ایجاد کنیم با ان تفاوت که برای متود Get اتریبیوت Browsable > False بشه.
و زمانی که خصوصیت های کلاسی که خصوصیت های اون Expand شده مقادیر رو بخوان بگیرن یا Set کنند با این پروواید پراپرتی ها مچ کنیم که هم زمان تغییرات ثبت بشه و فراخوانی بشه.

و یک نکته مهم دیگه برای اینکه خصوصیت پروواید Expandable نمایش داده بشه باید در متود Get از اون، با این شرط که Collection مربوطه Component رو در خودش نداره یک آیتم جدید به همراه همون Component در مقدار جدید از کلاس Expand شده به اون(Collection) اضافه کنیم و همزمان از طریق New Constructor خود کلاس فعلی و component رو به کلاس Expand شده ارسال کنیم تا بتونیم متودهای کلاسمون رو برای فراخوانی و مقداردهی استفاده کنیم.

چون زبان برنامه نویسی که استفاده کردم Visual Basic هست فقط به توضیح شیوه انجامش اکتفا می کنم.