Data binding là gì

Data binding là một trong những biện pháp cực kỳ mạnh của winform tuy thế thường xuyên ko được các bạn chăm chú cho tới khi làm cho project. Txuất xắc vào kia, chúng ta hay sử dụng cách thủ công nhằm gán dữ liệu cùng gọi tài liệu tự tinh chỉnh và điều khiển. Kết trái là con số code behind không hề nhỏ, mất không ít công sức của con người, dễ dàng gặp mặt lỗi, cạnh tranh biến hóa kiến thiết, khó đồng điệu tài liệu thân các tinh chỉnh.

Bạn đang xem: Data binding là gì

Trong phần 2 của loạt bài này bọn họ đã áp dụng data binding vào xây đắp bối cảnh winform. Dù thế, bọn họ không phân tích và lý giải cụ thể nghệ thuật này.

Trong bài viết này, bọn họ vẫn trình diễn cụ thể về kỹ thuật cùng cách áp dụng data binding vào winsize. Chúng ta đã áp dụng data binding thực hiện gần như sự việc sau: (1) đồng điệu dữ liệu giữa object cùng điều khiển; (2) bật/tắt (disable/enable) nút ít bnóng theo điều kiện quý hiếm của object.

Hai chiến thuật này còn có quý hiếm rất to lớn khiến cho bạn đẩy mạnh qui định data binding của windows forms để sút số lượng code, giúp công tác chuyển động bình ổn với bình an hơn.


NỘI DUNG CỦA BÀI Ẩn
1. Kỹ thuật Data binding vào C# với Winkhung
1.1. Data binding là gì?
1.2. Data binding vào winform
1.3. Data Binding thẳng cùng gián tiếp, lớp BindingSource của Winkhung
1.4. Giao diện INotifyPropertyChanged
2. Áp dụng chuyên môn data binding vào winform
2.1. Cập nhật tài liệu trên tinh chỉnh bởi code
2.2. Tạo class cung ứng INotifyPropertyChanged
2.3. Tự rượu cồn disable/enable nút theo giá trị
3. Kết phần
3.1. Tải mã nguồn Giải pháp winforms (5): áp dụng data binding

Loạt bài “Các giải pháp dành riêng cho thiết kế winform”:Phần 1 – Lỗi thường chạm chán trong lập trình sẵn winformsPhần 2 – Thiết kế bối cảnh cùng với Data Sources với BindingSourcePhần 3 – Phân phân chia code thành module thực hiện InterfacePhần 4 – Sử dụng thư viện DevExpress mang đến winformsPhần 5 – Sử dụng Data BindingPhần 6 – Sử dụng Entity Framework

Kỹ thuật Data binding vào C# và Winform


Trước Khi lấn sân vào thực hiện, họ tìm hiểu qua khái niệm data binding trong winsize và C#.

Data binding là gì?

Theo Wikipedia, data binding là kỹ thuật link một nguồn tài liệu với nơi sử dụng dữ liệu đó, và đồng nhất hóa dữ liệu thân chúng.

Trong winform rất có thể hiểu đơn giản dễ dàng như thế này: mối cung cấp tài liệu là một object nào đó; chỗ áp dụng tài liệu là các điều khiển. Data binding được cho phép link một điều khiển và tinh chỉnh với cùng một object (hoặc danh sách các object). Điều khiển hiển thị báo cáo cất trong object.

khi người tiêu dùng biến hóa cực hiếm bên trên tinh chỉnh, cực hiếm new sẽ tiến hành update tức thì về object. Ở phía trên, sự đồng hóa tài liệu diễn ra theo hướng điều khiển và tinh chỉnh => object.

Ở chiều ngược trở lại, khi biến hóa quý hiếm của object chưa Chắn chắn vẫn dẫn tới việc cập nhật của điều khiển. Để triển khai đồng nhất theo hướng ngược lại (tức là object => điều khiển), bọn họ buộc phải áp dụng một giải pháp không giống đang xem xét tại vị trí sau.

Nhiều tinh chỉnh rất có thể cùng bind với một object. Nếu một trong các kia biến hóa quý hiếm của object, sự chuyển đổi này đề xuất cập nhật cho toàn bộ các tinh chỉnh không giống. Đây là sự đồng nhất tài liệu giữa những tinh chỉnh.

Data binding trong winform

Một số lượng to những tinh chỉnh cơ bản của winform cung ứng data binding. Cơ chế này bind (đính kết) một trực thuộc tính (property) của điều khiển và tinh chỉnh với cùng 1 property của một object chứa tài liệu và nhất quán bọn chúng. lấy ví dụ như, Form tất cả trực thuộc tính Text cung cấp binding cùng với bất kỳ thuộc tính làm sao có hình trạng string của object.

Một số tinh chỉnh và điều khiển của winsize ko cung cấp data binding. Ví dụ, các điều khiển và tinh chỉnh trên tkhô hanh toolbar hoặc status bar.

Xem thêm: HướNg DẫN Thủ TụC Mua Hóa Đơn Trực Tiếp Ở Đâu ? Mua Hóa Đơn Trực Tiếp Ở Đâu

Để soát sổ xem một điều khiển và tinh chỉnh của winkhung gồm hỗ trợ data binding hay không, thứ 1 click chọn nó trên khung. Ấn F4 để Open sổ Properties và chọn cách sắp xếp là Categorized. Tìm đến mục Data. Nếu điều khiển cung cấp data binding, mục Data đã xuất hiện thêm một mục con DataBindings như tiếp sau đây.

*
*
Hỗ trợ data binding vào windows forms

Tlỗi viện điều khiển của những hãng máy cha cung ứng hay hỗ trợ data binding giỏi rộng các so với điều khiển và tinh chỉnh nơi bắt đầu của windows forms. Quý Khách hoàn toàn có thể mày mò cách thực hiện thỏng viện Devexpress.

Data Binding trực tiếp với gián tiếp, lớp BindingSource của Winform

Binding thẳng là bind giữa control cho tới object của class chúng ta từ chế tác. Binding con gián tiếp là bind giữa control với cùng một object của một class đặc biệt quan trọng bởi vì .NET tạo thành có tên Hotline là BindingSource.

Đây chưa hẳn là 1 phân nhiều loại phê chuẩn. Ssinh hoạt dĩ bao gồm sự rõ ràng này là vì lớp BindingSource được .NET hỗ trợ.

Lớp BindingSource được .NET tạo thành cùng với phương châm một mối cung cấp dữ liệu trung gian, nằm giữa object chứa dữ liệu cùng tinh chỉnh. BindingSource giúp dễ dàng và đơn giản hóa quy trình binding cũng như đồng hóa thân các tinh chỉnh.

lúc thực hiện project ở trong phần 2 – thi công hình ảnh, họ đã áp dụng cả nhì biện pháp này. Các điều khiển bên trên form (DataGridView, TextBox) bind gián tiếp qua BindingSource. Riêng title của Form bind trực tiếp với 1 property của view model.

Binding con gián tiếp qua BindingSource cung ứng sẵn vấn đề đồng điệu ngược (trường đoản cú object về điều khiển) tương tự như đồng điệu các tinh chỉnh. khi dùng binding trực tiếp bọn họ nên tự triển khai quy trình đồng nhất này.

Giao diện INotifyPropertyChanged

Lúc thực hiện binding thẳng với object, quá trình đồng nhất chỉ diễn ra theo chiều điều khiển => object. Để sự thay đổi của object được update trên điều khiển, object đề xuất thực thi bối cảnh INotifyPropertyChanged.

Chúng ta đang tiến hành giải pháp này Khi bind trực thuộc tính Text của khung Contacts cùng với nằm trong tính Title của ContactsViewModel.

Hiểu đơn giản, INotifyPropertyChanged kinh nghiệm class thực hiện nó đề nghị chế tạo sự kiện

public sự kiện PropertyChangedEventHandler PropertyChanged;Các tinh chỉnh và điều khiển của winsize cung ứng data binding đang từ đăng ký theo dõi sự khiếu nại này giả dụ class xúc tiến giao diện tương ứng. lúc một property của object biến hóa quý hiếm, sự thay đổi này sẽ được thông báo ra đến phần đông địa điểm đăng ký theo dõi và quan sát. Do kia, điều khiển và tinh chỉnh đã update lại sự biến hóa theo quý giá của property của object. Đây là quá trình đồng nhất ngược object => tinh chỉnh và điều khiển.

Xem thêm: Đồ Chơi Nấu Ăn Của Chị Thơ Nguyễn Nấu Ăn Cùng Chị Thơ Nguyễn

Áp dụng nghệ thuật data binding vào winform


Cập nhật tài liệu trên tinh chỉnh bằng code

Trước hết chúng ta đang thể nghiệm công dụng tính giá trị từ code rồi update cực hiếm của tinh chỉnh.

Trong DxContacts size tạo ra sinh hoạt bài bác trước đặt thêm một nút ít bấm Set Alias nlỗi dưới đây


Chuyên mục: Blogs