This article has been localized into Vietnamese by the community.
Data binding thông qua Code-behind
Như chúng ta đã thấy ở những ví dụ về data binding trước đây, việc định nghĩa 1 binding bằng cách sử dụng XAML là rất dễ dàng, nhưng trong những trường hợp nhất định, bạn có thể muốn làm việc này từ Code-behind thay vì trong XAML. Điều này cũng tương đối dễ và cung cấp khả năng tương tự như khi bạn sử dụng XAML. Hay thử ví dụ "Helo, bound world", nhưng lần này tạo binding từ Code-behind:
<Window x:Class="WpfTutorialSamples.DataBinding.CodeBehindBindingsSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="CodeBehindBindingsSample" Height="110" Width="280">
<StackPanel Margin="10">
<TextBox Name="txtValue" />
<WrapPanel Margin="0,10">
<TextBlock Text="Value: " FontWeight="Bold" />
<TextBlock Name="lblValue" />
</WrapPanel>
</StackPanel>
</Window>
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
namespace WpfTutorialSamples.DataBinding
{
public partial class CodeBehindBindingsSample : Window
{
public CodeBehindBindingsSample()
{
InitializeComponent();
Binding binding = new Binding("Text");
binding.Source = txtValue;
lblValue.SetBinding(TextBlock.TextProperty, binding);
}
}
}
Nó hoạt động bằng cách tạo 1 Binding instance. Chúng ta chỉ định đường dẫn chúng ta muôn trực tiếp trong hàm khởi tạo, trong trường hợp này là "Text" bởi vì chúng ta muốn bind tới thuộc tính Text. Sau đó chúng ta chỉ định Source, trong ví dụ này là TextBoxt control. Bây giờ thì WPF hiểu là nó sẽ sử dụng TextBox như là source control, và rằng chúng ta thấy rõ giá trị của nó chứa trong thuộc tính Text.
Trong dòng cuối, chúng ta sử dụng phương thức SetBinding để kết hợp đối tượng Binding mới được tạo với control nguồn/đích, trong trường hợp này là TextBlock (lblValue). Phương thức SetBinding() nhận 2 tham số, một chỉ định thuộc tính dependency rằng chúng ta muốn bind tới nó, và một giữ đối tượng binding mà chúng ta muốn sử dụng.
Tóm tắt
Như bạn thấy, tạo binding trong C# thì dễ dàng, và có lễ 1 chút dễ dàng hơn để nắm bắt đối với những người mới tìm hiểu data binding khi so sánh với cú pháp đã nội tuyến đã được sử dụng trong XAML. Sử dụng phương thức nào là tùy bạn nghĩ - chúng đều hoạt động tốt trong cả hai trường hợp.