TOC

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

Обвързване на данни:

Обвързване на данни чрез кода (Code-behind)

Както видяхме в предишните примери за обвързване на данни, дефинирането на обвързване използвайки XAML е много лесно, но в определени случаи може да искате да го направите чрез коод (от Code-behind). Това също е доста лесно и предлага точно същите възможности както когато използвате XAML. Нека опитаме примера „Здравей, обвързан свят“ ("Hello, bound world"), но този път създавайки обвързването от 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);
}
    }
}

Осъществява се чрез създаване на инстанция на обекта Binding. Указваме желания път директно в конструктора, в този случай „Текст“, тъй като искаме да се обвържем със свойството Text. След това посочваме Source(Източник), който за този пример трябва да бъде контролата TextBox с име "txtValue". Сега WPF знае, че трябва да използва TextBox като контрола на източника и че ние търсим конкретната стойност, съдържаща се в неговото свойство Text.

В последния ред използваме метода SetBinding, за да комбинираме нашия новосъздаден Binding обект с дестинацията/целевата контрола, в този случай TextBlock (lblValue). Методът SetBinding() приема два параметъра, единият, който казва към кое свойство искаме да се свържем, и един, който съдържа обвързващия обект, който искаме да използваме.

Обобщение

Както можете да видите, създаването на обвързвания със C# код е лесно и дори може би малко по-лесно за разбиране от хора, за които обвързванията на данни са новост, отколкото в сравнение със синтаксиса използван за създаването му директно в XAML. Кой метод ще използвате обаче зависи от вас - и двата работят еднакво добре.


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!