This article has been localized into Polish by the community.
Wiązanie danych za pomocą kodu w C#
Jak widzieliśmy w poprzednich przykładach wiązania danych, definiowanie wiązań za pomocą XAML jest bardzo proste. W niektórych przypadkach możesz jednak potrzebować lub chcieć utworzyć takie wiązanie za pomocą kodu C#. Jest to bardzo proste i oferuje takie same możliwości jak z poziomu XAML. Wróćmy jeszcze raz do przykładu "Hello, bound world", ale tym razem utwórzmy potrzebne wiązania za pomocą C#.
<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);
}
}
}
Zrobimy to tworząc instancję klasy Binding. Ścieżkę wiązania określamy w jej konstruktorze. W tym przypadku jest to "Text", ponieważ wiązaniem chcemy objąć właśnie wartość tekstową. Następnie określamy źródło wiązania Source, które w tym przykładzie ustawione jest na kontrolkę TextBox. Teraz WPF wie, że powinien użyć kontrolki TextBox jako źródła danych i że źródłem ważnym dla nas jest wartość znajdująca się we właściwości Text.
W ostatniej linii kodu używamy metody SetBinding() do połączenia naszego nowo utworzonego obiektu klasy Binding z kontrolką docelową, w tym przypadku kontrolką TextBlock (lblValue). Metoda SetBinding() pobiera dwa parametry. Pierwszy z nich wskazuje właściwość kontrolki, do której chcemy utworzyć wiązanie, natomiast drugi przechowuje obiekt, z którego pobrane zostaną dane.
Podsumowanie
Jak widzisz, tworzenie wiązań za pomocą kodu C# jest bardzo proste. Dla osób które dopiero zaczynają swoją przygodę z wiązaniami danych to rozwiązanie może być łatwiejsze do przyswojenia niż analogiczne, utworzone w języku XAML. Której metody użyjesz, zależy tylko od Ciebie. Obie działają równie dobrze.