TOC

This article has been localized into Czech by the community.

Datové vazby (Data binding):

Vázání dat (data binding) přes Code-behind

Jak jsme viděli v předchozích příkladech vazby dat, definování vazby pomocí XAML je velmi snadné, ale v určitých případech můžete chtít to provést z Code-behind. To je také poměrně snadné a nabízí přesně stejné možnosti jako při používání XAML. Zkusme příklad "Hello, bound world", ale tentokrát vytvoříme požadovanou vazbu z 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);
}
    }
}

To funguje tak, že vytvoříme instanci Binding. Přímo v konstruktoru specifikujeme cestu, kterou chceme, v tomto případě "Text", protože chceme navázat na vlastnost Text. Poté specifikujeme Source (zdroj), který by pro tento příklad měl být ovládací prvek TextBox. Nyní WPF ví, že by měl použít TextBox jako zdrojový ovládací prvek a že konkrétně hledáme hodnotu obsaženou ve vlastnosti Text.

V posledním řádku používáme metodu SetBinding k spojení našeho nově vytvořeného objektu Binding s cílovým ovládacím prvkem, v tomto případě TextBlock (lblValue). Metoda SetBinding() přijímá dva parametry, jeden, který říká, na kterou závislou vlastnost chceme navázat, a jeden, který obsahuje objekt vazby, který chceme použít.

Shrnutí

Jak vidíte, vytváření vazeb v kódu C# je snadné a možná trochu snazší k pochopení pro lidi, kteří jsou noví v datových vazbách, ve srovnání se syntaxí používanou pro jejich inline vytváření v XAML. Kterou metodu použijete, záleží na vás - obě fungují zcela v pořádku.


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!