В некоторых случаях вы можете захотеть сделать это из застраничного кода (код программной части). Это также очень легко и будет иметь те же возможности, что дает связывание через XAML. Давайте повторим пример «Здравствуй, связанный мир», в этот раз создаваемую нужную связь из застраничного кода.
<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», ведь мы хотим связать свойство Text. Затем мы указываем Source , для которого используется этот пример будет элемент TextBox. Теперь WPF знает, что надо использовать TextBox как исходный элемент, и что нам интересно значение его свойства Text в частности.
В последней строчке мы вызываем метод SetBinding, чтобы совместить только созданный объект Binding с новым назначением в нашем случае TextBlock (lblValue). Метод SetBinding () принимает два параметра, один указывает какое свойство зависимости (свойство зависимости) мы хотим связать, второй - объект, который мы хотим использовать.
Комментариев нет:
Отправить комментарий