الـ Data Binding هو مصطلح يستخدم في عالم البرمجيات والسوفتوير، فما هو الـ Data Binding ؟؟ الـ Data Binding هي عبارة عن آلية مزامنة البيانات بين جزئين مختلفين من النظام أو التطبيق. لو فرضنا أن لدينا جزئين "س" و "ص" في نظام ما أو تطبيق ما، فلو حدث تغير في البيانات في الجزء "س"، فهذه الآلية تقوم بالتأكد من أن هذا التغير قد حدث أيضا في الجزء "ص"، والعكس صحيح، وهذا ما يطلق عليه الـ Data Binding. 

data binding

أحيانا ما نشير إلى الجزئين "س" و "ص" بالـ Binding Target والـ Binding Source. وآلية الـ Data Binding هنا يمكن النظر إليها كما لو أنها كوبري أو جسر بين الجزئين.

Data Flow Direction

تنقسم الـ Data Binding إلى قسمين، إما Data Binding في اتجاه واحد، أو Data Binding ثنائية الاتجاه. فكما ذكرنا سابقا لو حدث تغير في الجزء "س" وقامت الآلية بعمل هذا التغير على الجزء "ص" ولا يعنيها العكس، فهذا يعد Data Binding في اتجاه واحد، أما لو كانت الآلية مهتمة أيضا بالطريق الأخر بمعنى أنه لو حدث تغير أيضا في الجزء "ص" وقامت الألية بعمل هذا التغير في الجزء "س" فهذا يعد Data Binding تنائي الاتجاه.

Usage 1

من أكثر استخدامات الـ Data Binding هي مزامنة البيانات بين الـ Data Source الموجودة في الأكواد، وبين واجهة المستخدم الـ UI، فعلي سبيل المثال؛ ربما تجد حقل إدخال في واجهة المستخدم يحمل الـ username، وفي الأكواد الخلفية في الـ Data Source أيضا هناك بيان الـ username، فكلما قام المستخدم بتغير الـ username في حقل الإدخال، قامت الـ Data Binding بمزامنة هذا التغيير وتعديله في الـ Data Source، وكذلك العكس حسب إن كانت الـ Data Binding تثائية الاتجاه أو أحادية الاتجاه.

Usage 2

كما أيضا في المثال السابق، هناك نمط يسمى الـ MVVM هذا النمط كلمة السر فيه هي الـ Data Binding، حيث وجود الـ Data Binding بين الـ View وبين الـ ViewModel، فكلما حدث أي تغير في الـ View المسئولة بشكل أساسي عن واجهة المستخدم الـ UI، يتم هذا التغيير أيضا في الـ ViewModel، والسبب في ذلك أن هناك Data Binding بين كل من الـ View وبين الـ ViewModel.

 

في النهاية؛ الـ Data Binding هي فكرة أو بالأحرى آلية يتم فيها التأكد من مزامنة التغيير بين جزئين من النظام أو التطبيق، ومن الممكن أن تكون أحادية الاتجاه أو ثنائية الاتجاه. وهي ليست معنية بلغة برمجة معينة، بل يمكنك أن تضمنها في أي لغة وبالشكل الذي تراه مناسبا للحالة التي أمامك مادمت تفهم هذه الآلية بشكل صحيح.