This article is currently in the process of being translated into Portuguese (~98% done).
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.