33 - سلسلة تبسيط البرمجة - WPF - الربط بين الخصائص Binding

السلام عليكم ورحمة الله وبركاته

بسم الله الرحمن الرحيم

نفتح المشروع الذي قمنا به في الدرس السابق والذي يفترض أنه يحوي على صندوق نص

  • نقوم بإضافة عنصر فحص CheckBox ونضعه بجانب صندوق النص TextBox

  • سنلاحظ أنه تم إضافة سطر جديد يوصف العنصر الجديد

  • بعد اسم العنصر الذي هو أول كلمة CheckBox نضع مؤشر الماوس و ندخل مسافة ثم نكتب حرف إكس صغير x فتظهر قائمة بالكلمات المتاحة ننقر على الخيار x: فتظهر اللائحة من جديد وتظهر ثلاث خيارات نختار منها الاسم Name فيكتبها ويضيف بعدها يساوي وإشارتي تنصيص ويموضع المؤشر بينهما منتظرا كتابة شيء ما وهنا ندخل اسم للعنصر ولنسمه chkCanEdit فيصبح لدينا

--

CheckBox x:Name="chkCanEdit"
  • سنلاحظ في نافذة الخصائص أنه قد تم تغير القيمة الافتراضية لاسم العنصر من No Name لتأخذ القيمة التي أضفناها chkCanEdit وما أريد قوله أنه بإمكاننا تعديل قيم الخصائص من نافذة الخصائص أو من خلال التوصيف زامل والأمر حسب رغبة المبرمج أو المصمم أيهما أسهل بالنسبة له

- بعد أن حددنا اسم للعنصر سنغير قيمة المحتوى Content ونجعلها Can Edit بدلا من الافتراضية CheckBox الموجودة مسبقا ويصبح لدينا

 Content="Can Edit"

سنغير القيمة الافتراضية للخاصية IsChecked لتصبح True بدلا من False و ملاحظة عدم وجود توصيف للخاصية يعني أنها تأخذ القيمة الافتراضية ضمنا وأي تعديل لقيمة غير الافتراضية سيتم إظهار توصيفها في زامل

لتعديل القيمة يمكننا من نافذة الخصائص مباشرة أو يمكن ضمن سطر العنصر في زامل أن نحشر بعد أي فراغ موجود ونكتب كلمة IsChecked طبعا مع بداية الكتابة ستظهر لائحة الاقتراحات الممكنة بالنقر عليها سيضيف يساوي وعلامات تنصيص مع ظهور خيارات القيم وهي x:Null و True و False حيث أن القيمة نل x:Null تعبر عن عدم تحديد لأن هذا العنصر يعتبر ثلاثي الحالة المهم نختار True سنلاحظ كيف ظهرت علامة التحديد مباشرة على العنصر في النافذة

وسيكون السطر كاملا

CheckBox x:Name="chkCanEdit" Content="Can Edit" IsChecked="True" HorizontalAlignment="Left" Margin="185,91,0,0" VerticalAlignment="Top"

سنقوم الآن بربط خاصية IsEnable للعنصر TextBox بالخاصية IsChecked للعنصر CheckBox في أي فراغ ضمن سطر صندوق النص نحشر كلمة IsEnabled وضمن إشارات التنصيص بعد يساوي نكتب القوس المعكوف { "حرف ج أي القوس الأيسر وقد ظهر هنا بالعكس لأن النص عربي" نلاحظ عند فتح القوس ستظهر خيارات أولها Binding و هي علامة الربط بدلا من القيمة المباشرة نضغط إنتر لحشر الكلمة ثم فراغ ثم نكتب اسم الخاصية المصدر وهي IsChecked ثم فاصة , ثم تظهر خيارات نختار ElementName ثم نحدد قيمتها اسم العنصر المصدر الذي أسميناه في البداية chkCanEdit

فيصبح السطر

TextBox x:Name="txtHellowWorld" IsEnabled="{Binding IsChecked, ElementName=chkCanEdit}" HorizontalAlignment="Left" Height="23" Margin="47,89,0,0" TextWrapping="Wrap" Text="Hellow World" VerticalAlignment="Top" Width="120"

نشغل البرنامج ونجرب تغيير تحديد صندوق التحديد ونلاحظ أثره على صندوق النص

انتهى الدرس

شكرا للمتابعة