TOC

This article is currently in the process of being translated into Vietnamese (~95% done).

Data binding:

Hello, bound world!

Giống như chúng tôi đã bắt đầu hướng dẫn này với "Hello, world!" một ví dụ huyền thoại, chúng tôi sẽ cho bạn thấy việc sử dụng liên kết dữ liệu trong WPF dễ dàng như thế nào với ví dụ "Hello, bound world!". Hãy đi thẳng vào vấn đề và sau đó tôi sẽ giải thích sau:

<Window x:Class="WpfTutorialSamples.DataBinding.HelloBoundWorldSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="HelloBoundWorldSample" Height="110" Width="280">
    <StackPanel Margin="10">
		<TextBox Name="txtValue" />
		<WrapPanel Margin="0,10">
			<TextBlock Text="Value: " FontWeight="Bold" />
			<TextBlock Text="{Binding Path=Text, ElementName=txtValue}" />
		</WrapPanel>
	</StackPanel>
</Window>

Ví dụ đơn giản này cho thấy cách chúng tôi liên kết giá trị của TextBlock với thuộc tính Text của TextBox. Như bạn có thể thấy từ ảnh chụp màn hình, TextBlock sẽ tự động được cập nhật khi bạn nhập văn bản vào TextBox. Nếu không có dự ràng buộc, để làm được như vậy chúng ta sẽ phải tạo một sự kiện trên TextBox và sau đó cập nhật TextBlock mỗi khi văn bản thay đổi, nhưng với ràng buộc dữ liệu, kết nối này có thể được thiết lập chỉ bằng cách sử dụng đánh dấu.

The syntax of a Binding

Tất cả các phép thuật xảy ra giữa các dấu ngoặc nhọn, được sử dụng trong XAML để bao một Markup Extension. Để liên kết dữ liệu, chúng tôi sử dụng tiện ích mở rộng Binding, cho phép chúng tôi để mô tả mối quan hệ ràng buộc cho thuộc tính Text. Ở dạng đơn giản nhất, một ràng buộc có thể trông như thế này:

{Binding}

Điều này chỉ đơn giản trả về bối cảnh dữ liệu hiện tại (sẽ nói thêm về điều đó sau). Điều này chắc chắn có thể hữu ích, nhưng trong các trường hợp phổ biến nhất, bạn sẽ muốn liên kết một thuộc tính với một thuộc tính khác trên bối cảnh dữ liệu. Một ràng buộc như thế sẽ như thế này:

{Binding Path=NameOfProperty}

Path là thuộc tính mà bạn muốn liên kết, tuy nhiên, vì Path là thuộc tính mặc định của ràng buộc, bạn có thể bỏ nó nếu bạn muốn, như thế này:

{Binding NameOfProperty}

Bạn sẽ thấy nhiều ví dụ khác nhau, một số trong đó Path được xác định rõ ràng và một số thì không. Cuối cùng, điều đó thực sự phụ thuộc vào bạn.

Một ràng buộc có nhiều thuộc tính khác, một trong số chúng là ElementName, thuộc tính mà chúng ta sử dụng trong ví dụ. Điều này cho phép chúng tôi kết nối trực tiếp với một thành phần UI khác làm nguồn. Mỗi thuộc tính mà chúng ta đặt trong liên kết được phân tách bằng dấu phẩy:

{Binding Path=Text, ElementName=txtValue}

Summary

Đây chỉ là một cái nhìn thoáng qua về tất cả các khả năng của ràng buộc trong WPF. Trong các chương tiếp theo, chúng ta sẽ khám phá thêm về chúng, để cho bạn thấy mức độ ràng buộc dữ liệu mạnh mẽ như thế nào.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!