TOC

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

Data binding:

Data binding via Code-behind

Como vimos nos exemplos anteriores sobre data binding (ligação de dados), definir um binding usando XAML é muito fácil, mas para certos casos, você talvez queira fazer isso pelo code-behind. Isto também é muito fácil e oferece as mesmas possibilidades de quando você está usando XAML. Vamos tentar o exemplo de "Hello, bould world", mas desta vez criando o binding necessário pelo 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);
}
    }
}

Isso funciona criando uma instância da classe Binding. Especificamos o caminho (path) que desejamos diretamente no construtor, neste caso "Text", já que desejamos ligar à propriedade Text. Então, especificamos a fonte (Source), o qual neste exemplo é o controle TextBox. Agora o WPF sabe que deve usar o TextBox como o controle fonte e que procurávamos especificamente o valor contido em sua propriedade Text.

Na última linha, usamos o método SetBinding para combinar nosso recém criado objeto Binding com o controle destinado/visado, neste caso o TextBlock (lblValue). O método SetBinding() recebe dois parâmetros: um define qual propriedade queremos nos ligar e o outro o objeto binding que desejamos usar.

Resumo

Como você pode ver, criar ligações (bindings) no código C# é fácil, e talvez um pouco mais fácil de aprender para pessoas novas ao data bindings, quando comparado à sintaxe usada para realizá-los inline no XAML. Qual método escolher depende de você - os dois funcionam perfeitamente.


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!