نمایش نتایج 1 تا 5 از 5

نام تاپیک: اضافه کردن چندین بار یک کنترل با یک بار new کردن

Hybrid View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1

    اضافه کردن چندین بار یک کنترل با یک بار new کردن

    با سلام
    برای اضافه کردن چند باره یک کنترلی که فقط یکبار new شده، به مشکل برخورد کردم.
    همونطور که میدونید اگه یک آبجکت فقط یکبار new شده باشه تنها یکبار میشه از این نمونه برای کاربردی که من میخوام، استفاده کرد و برای استفاده مجدد باید دوباره new بشه!
    که در صورت عدم نمونه سازی مجدد کنترل مورد نظر تنها به آخرین محل اضافه شده واقعا اضافه میشود.
    حال اگر امکان نمونه سازی مجدد وجود نداشته باشه، آیا راهی وجود داره؟
    البته با استفاده از Activator.CreateInstance با سختی بسیاری مشکلم حل میشه، چون باید تمام property ها رو دوباره ست کنیم!
    آیا راه حل ساده ای وجود داره؟

  2. #2
    سلام
    می تونی از آرایه ها استفاده کنی ولی احتمالا کارت اشتباه است
    در صفحه ات نمی تونی از Repeater استفاده کنی
    Kochol Game Engine
    http://www.kge3d.org



  3. #3
    سلام
    مثل اینکه متوجه نشدید! اینقدرها هم ساده نیست.
    من دارم یه کنترلی مینویسم که یه property داره که یه کنترل میگیره و میخواد اونو به تعدادی خاص به یه آیتم اضافه کنه!
    حالا این کنترلی که توسط کاربر 1 بار فقط new شده (نمونه سازی شده) چطوری میشه چند بار اضافش کرد.
    چون اگر به ازای هر بار ضافه شدن new نشه، این کنترل فقط به آخرین نقطه اضافه شده توسط کد من، اضافه میشه!
    حالا روشی وجود نداره که بشه بدون اینکه کنترل رو به تعداد مورد نیاز new کنیم (چون در اینجا امکانش وجود نداره) کنترلها رو بشه اضافه کرد.(با تمام propertyهای ست شده توسط کاربر!)

  4. #4
    راستی یادم رفت که بگم:
    اگه از Activator.CreateInstace استفاده کنیم(روشی که هم اکنون به عنوان تنها راه حل پیدا شده!) میشه فقط یه نمونه خالی (بدون propertyهای ست شده) ساخت، که کار ست کردن دوباره خواصی که توسط کاربر ست شده، بایستی توسط کد خودم انجام بشه! که کار بسیار سختیه، چون باید به ازای تمامی کنترلهای موجود کدهایی برای هندل کردن propertyها نوشته بشه!!!

  5. #5
    سلام
    خودم یه راه خیلی بهتر براش پیدا کردم!
    اینجا میذارمش تا دیگران هم استفاده کنند.

    اگر کلاس مورد نظر اینترفیس ICloneable رو ایمپلیمنت کرده باشه، براحتی میشه با تابع Clone یه نمونه دیگه از نمونه مذبور ساخت.
    اما تقریبا هیچکدوم از کنترلهای Web و Html این اینترفیس رو ایمپلیمنت نکردند! چیکار باید کرد :
    بایستی کنترل خاص خودمونو بنویسیم که از کنترل مورد نظر مشتق شده باشه و ICloneable رو هم ایمپلیمنت بکنه!
    بعدش باید متد Clone رو هم براش بنویسیم!
    که تو این تابع برای اینکه تمام propertyها هم برگردونه بشه بایستی از تابع protected زیر رو که یه object برمیگردونه، استفاده بشه:
    ()MemberwiseClone
    به همین راحتی!!!

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •