تمام سوالات سوالات بدون پاسخ سوال بپرسید

سلام.می دانم که روش ایجاد Dependency property ها مشابه property های معمولی می باشد.اما دقیقا نمی دانم چه تفاوتی با یکدیگر دارند.ممنون می شوم اگر اختلاف آنها را برایم توضیح دهید.

2 پاسخ

هر دو برای نگهداری داده ها استفاده میشوند و نحوه ی مقداردهی و مقدارگیری از آنها مشابه است. اما در عمل تفاوت های بسیاری با یکدیگر دارند.

DP ها از نظر Performance بسیار ضعیف تر از Propertyهای معمولی هستند و اگر تنها قصد نگهداری داده ها را دارید توصیه اکید میشود که از Propertyها استفاده نمایید.

DPها قابلیت های بسیار بیشتری را در اختیار ما قرار میدهند و ما را قادر میسازند از بسیاری امکانات استفاده نماییم. به عنوان مثال: انیمیشن، استایلینگ، مقید سازی داده ها و ...

DPها میتوانند مقادیر خود را بر مبنای ورودی های دیگر محاسبه نمایند. این ورودی ها میتوانند هرچیزی باشند. به عنوان مثال در بحث Triggerها، یک DP میتواند برمبنای تغییر یک خاصیت دیگر، مقدار خود را تنظیم کرده و آن رفتاری را از خود بروز دهد که شما انتظار دارید.

در موارد زیر شما بایستی از DPها استفاده نمایید:

زمانی که میخواهید خاصیت شما قابل مقدار دهی در Styleها و Templateها باشد.

زمانی که میخواهید خاصیت شما قابل استفاده در Data Bindings باشد(از تمام قابلیت های مقید سازی داده ها استفاده کنید).

زمانی که میخواهید خاصیت شما به صورت اتوماتیک بتواند مقدار خودش را از مقدار والد خود ارث بری کند.(با ارث بری کلاس ها اشتباه نشود)

زمانی که میخواهید از خاصیت خود در متحرک سازی استفاده نمایید. هنگامی که نیاز دارید مقادار خاصیت شما در یک پروسه انیمیشنی قابل کنترل باشد.

تعریف Propertyها به این صورت است:

 private int myVar;
        public int MyProperty
        {
            get { return myVar; }
            set { myVar = value; }
        }

یا

    public int MyProperty { get; set; }

تعریف Dependency Propertyها چهار بخش دارد اما لزومی ندارد که از تمام آنها استفاده کرد:

  • تعریف متا دیتا برای خاصیت. این مرحله اختیاری می باشد و میتوان در تعریف از مقدار null استفاده کرد.

  • تعریف یک فیلد با امضای readonly public static به عنوان شناسه خاصیت. این فیلد بایستی از نوع Dependency Property باشد.

  • ثبت کردن خاصیت در سیستم WPF توسط متد Register.

  • ایجاد یک Wrapper برای خاصیت که همنام با خاصیت باشد.

برای اطلاعات بیشتر میتوانید به این دو مرجع مراجعه کنید:

Properties

Dependency Properties


سلام

با استفاده ازDependency property امكان استفاده از بسياري از ويژگيهاي پيشرفته ي WPF و Silverlight همانند پويانمايي(Animation) و Styles و Templates امكان پذير خواهند شد و مي توان از مزایای سیستم Binding بهره مند گرديد. همچنين اينگونه خواص توسط موتورSilverlight و WPF از لحاظ مصرف حافظه نيز بهينه سازي مي شوند. (نقل قول از کتاب آقای نصیری)

به عنوان مثال ساده اگر شما یک یوزر کنترل بسازید که خاصیت Text داشته باشه و شما این خاصیت رو از نوع Dependency property تعریف نکرده باشید نمیتونید اون رو به منبع داده Bind کنید

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×209
  • ×137
  • ×36
  • پرسیده شده: 15 سپتامبر '11, 22:48
  • بازدید: 4,609 بار
  • آخرین بروزرسانی: 18 آوریل '12, 04:11

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها