سؤال

أنا أستخدم عنصر تحكم DataPager في تطبيق Silverlight الخاص بي. لديّ أجهزة أجهزة مختلفة لمختلف بيانات البيانات وأريد استخدام نفس معالج الأحداث لحدث PageIndExchanged لجميعهم. يجب أن يأخذ المندوب كائن EventArgs كوسيطة. هل يمكنني استخدام هذا الكائن "للعودة" إلى عنصر التحكم الذي تم إطلاق الحدث؟

هل كانت مفيدة؟

المحلول

أقسم أنني جربت هذا قبل الترقية إلى F# 4 و Silverlight 4 ولم ينجح الأمر ولكنه الآن ...

http://connect.microsoft.com/visualstudio/feedback/details/524645/f-add-event-handler-to-form-anymous-function-is-required

نصائح أخرى

معلمة المرسل هي الإشارة إلى الكائن الذي أطلق الحدث.

لذلك إذا كنت تريد الوصول إلى DataPager هذا يجب أن يفعل ذلك:-

 DataPager dp = (DataPager)sender;

إليكم سيناريوتي في F#:

السيناريو 1

let pageIndexChanged (args : EventHandler<EventArgs>) = 
    // Do something
    ()

pager.PageIndexChanged.AddHandler(pageIndexChanged)

الذي يضع الخطأ

كان من المتوقع أن يكون لهذا التعبير نوع EventHandler
ولكن هنا لديه النوع
EventHandler -> وحدة

السيناريو 2

let pageIndexChanged (args : EventArgs) = 
    // Do something
    ()

pager.PageIndexChanged.Add(pageIndexChanged)

يقبل المترجم هذا ، لكن لا يمكنني فعل أي شيء مع ARGS

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top