مشاريع
أقسام المقالات
Total Articles: 19
مؤتمرات وأحداث
مراكز وانجازات
.net 2008 Course
آخر 10 مواضيع
كتب وملخصات
Tips & Tricks
INotifyPropertyChanged
الأحد، ٢٧ أبريل ٢٠٠٨

سوف نتحدث في هذه المقاله عن (Interface) يسمى INotifyPropertyChanged و وظيفته ان يلاحظ التغيرات التي طرأت على Property
في تطوير التطبيقات لزم ان ننتبه بأن ال GUI و ال Logic منفصلان تماما بمعنى، عندما تطور تطبيقا وهذا التطبيق يحتوي على GUI مثلا Form تحتوي على Button وعندما تضغط على ال Button تقوم بفعل شئ يجب الا تكتب ماسوف تفعله داخل Button click event ولكن Call methos
مثال

   1: private void button1_Click(object sender, EventArgs e)
   2:         {
   3: DoSomething();
   4:          }

اولا لكي تستخدم هذا ال Interface اكتب using System.ComponentModel;
ثانيا اجعل Inherits from INotifyPropertyChanged your class
و expose its member public event PropertyChangedEventHandler PropertyChanged
ثالثا مع كل Property نريد ان نعرف اذا ماكنت عدلت ام لا نضع هذا الكود مثلا عندي Property تسمى Name

 



   1: public string Name
   2: {
   3: get { return name; }
   4: set { name = value; 
   5: OnPropertyChanged("Name");//point 4 
   6: }

هذا هو ال Class الذي يحتوي على ال Property التي اريد اعرف ما اذا تغيرت



   1: using System.ComponentModel; //point 1
   2: class Person:INotifyPropertyChanged //point 2
   3: {
   4:  
   5: string name;
   6: public string Name
   7: {
   8:  
   9: get { return name; }
  10:  
  11: set { name = value; 
  12: OnPropertyChanged("Name");//point 4 
  13:  
  14: }
  15:  
  16: }
  17:  
  18: protected void OnPropertyChanged(string property)//point 3
  19: {
  20: if (PropertyChanged != null)
  21: {
  22: PropertyChanged(this,new PropertyChangedEventArgs(property));
  23: }
  24:  
  25: }
  26: public event PropertyChangedEventHandler PropertyChanged;//point 2

و هذا هو ال GUI



   1: Person p = new Person("FCI-H", 1);
   2: p.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(p_PropertyChanged);
   3: void p_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs
   4: e)
   5: {
   6: switch (e.PropertyName)
   7: {
   8: case "Name":
   9: nameTxt.Text = p.Name;
  10: break;
  11: }
  12: }

التسميات:

تم التحرير بواسطة Ramy Mahrous @ ٤:١٨ م  
0 Comments:
إرسال تعليق
<< Home
 
الصفحة الرئيسية
Google Search
Google
       

كتاب المدونة
من نحن ؟
مجموعة من الكتاب باللغة العربية بلغة الدوت نت ، نلتقي هنا لكي نتشارك الخبرات والمعلومات حول الجديد في عالم الدوت نت
ارشيف المواضيغ والمقالات السابقة
VB.net <> C#

الفروقات بين سي شارب و في بي . نت
روابط ومواقع تقنية عربية
عداد الزيارات
Locations of visitors to this page
أشخاص شرفونا بزيارتهم
مركز التحميل
© 2005 DotNet4Arab Blogspot Template by Isnaini Dot Com