Viewing .NET Data
Gắn kết dữ liệu
d trứơc đã xem xét tất cả control DataGrid, đó chỉ là một phần trong
thời gian chạy.NET thể dùng để hin thị dliu. Một tiến trình gắn kết
một control và một nguồn dữ liu được gọi là data binding.
Nếu bạn những kinh nghim với c ứngdụng lập trình Windows trong
MFC. lúc nào đó bạn đã s dụng chức năng Dialog Data Exchange
(DDX)để móc c biến thành viên của một lớp vi bộ điều khiển Win32.
Bạn svui sướng khi biết rằng bạn thể giấu cửa trên DDX, như d
dàng hơn để móc dữ liu vào bđiều khiển trong .NET. Bạn thể gắn kết
dliệu không chỉ đến các bộ điều khiển Window mà còn với c trang Web
ASP.NET.
Gắn kết đơn giản
Một control hỗ trợ việc gắn kết đơn hiển thị chỉ những giá trđơn tại một
lúc, như là mt hộp n bản hay mt nút chọn. Ví dụ sau chỉ cách gn kết
một cột từ một DataTable đến một hp văn bản.
DataSet ds = CreateDataSet();
textBox1.DataBindings.Add("Text", ds , "Products.ProductName");
Sau khi ly lại vài d liệu từ bảng Products lưu trtrong một DataSet
được trả về tphương thức CreateDataSet() như tn, dòng thhai gắn kết
thuộc tính Text của control đến cột Products.ProductName. Nếu bạn viết
đoạn mã này tsở dữ liệu Northwind, bn sẽ thấy màn hình như bên dưới
đây:
Hộp n bản hiển thị vài thtrong sdữ liệu. Để kiểm tra rằng là ct
hay giá trị, bạn sẽ sdụng công cSQL Server Query Analyzer để kiểm tra
nội dung của bảng Procucttool.
Đối tượng gắn kết dữ liệu
đồ sau chỉ một thừa kế lớp cho các đối tượng được sử dụng trong gắn kết
dliệu. Trong phần này ta n lun về BindingContext, CurrencyManager,
PropertyManager c lớp của System.Windows.Forms, trình cách
chúng tương c khi dữ liệu gii hạn trong một hay nhiu control trên mt
form. Các đối tượng chuyển màu được dùng trong gắn kết.
Trong d trước, chúng ta s dụng thuộc tính DataBinding của control
TextBox để gắn kết một cột từ một DataSet đến thuộc tính Text của bộ điều
khiển. Thuộc tính DataBindings một thể hiện của
ControlBindingsCollection :
textBox1.DataBindings.Add("Text", ds, "Products.ProductName");
Dòng y thêm một đối tượng gắn kết từ một đối tượng Binding đến
ControlBindingsCollection
Binding Context
Mọi Windows form một thuộc tính BindingContext. Form được thừa
hưởng từ Control . Một đối tượng BindingContext một tập thể hin
BindingManagerBase. Nhng thể hiện y được tạo thêm vào đối tượng
quản lý gắn kết khi mt control bgiới hạn:
BindingContext s chứa vài ngun dữ liệu, được gói trong một
CurrencyManager hay một PropertyManager. Squyết định lớp nào được
dùng dựa vào chính ngun dữ liệu.
Nếu nguồn dữ liu chứa một dãy item như là DataTable, DataView, hay bt
kỳ đối tượng khác thực thi giao diện IList tmột CurrencyManager sẽ được
dùng, như có thể duy trì v trí hiện tại bên trong ngun d liệu. Nếu
ngun dliệu chỉ trả về một giá trị đơn thì một PropertyManager sđược
lưu trữ trong BindingContext.
Một CurrencyManager hay PropertyManager chđược tạo một lần cho một
ngun d liu. Nếu bạn gn kết hai hộp văn bản vi một hàng t một
DataTable thì ch một currencyManager s được tạo bên trong binding
context.
Mọi control thêm vào một form được gn kết với bộ quản gắn kết của
form, thế tất cả control chia scùng một thhin. Khi một control được
tạo thuộc tính BindingContext của nó là null. Khi control được thêm b
Control của form thì nó s cài BindingContext đến bộ đó của form.
Để gắn kết một control vi một form, bạn cần thêm một thực thể vào thuộc
tính DataBinding ca nó. Đoạn mã bên dưới tạo một sự gn kết mới: