تنويه | في WPF أو SilverLight انتبه لاستخدام الربط Binding للـ DataContext

نحن نعلم أنه عند تغيير DataContext لأي عنصر يقوم بتعميمه على كل العناصر الأبناء أي العناصر الفرعية التي تقع تحته

ولكن في بعض الأحيان قد يلزم أن نجعل أحد العناصر الأبناء يربط خصائصه بمصدر بيانات مختلف سواء داخل XAML أو من خلال الكود

ولكن يجب الانتباه عند ربط الـ DataContext نفسها للعنصر الابن بأحد خاصيات مصدر الأب

لأن هذا سيعمل أول مرة ومن ثم سيفقد الاستجابة

لماذا ؟

لأنه في المرة التالية سيكون مصدر البيانات هو القيمة الجديدة للـ DataContext وليس مصدر الأب وبالتالي لم تعد الخاصية المصدر متوفرة لأنه فقد الارتباط مع مصدر الأب وتحول إلى المصدر الجديد

ولهذا يتوجب التحديث يدويا من خلال الكود أو التحايل على الأمر بإنتاج مصدر بيانات مساعد أو محلي داخلي مثلا SubDataContext بحيث هو الذي نربطه مع الأب

وفي حدث التغير داخليا في كل مرة نعيد إسناده إلى DataContext الابن