Использование LongBindingPath в WPF

Автор: Радж Кумар

В этой статье описано использование LongBindingPath в WPF. Это небольшой, но очень полезный пример работы с WPF. 

Сначала создайте новое приложение WPF и добавьте новую страницу с помощью команды добавления нового элемента, а затем перетащите на страницу несколько элементов управления. Я добавил один список из нескольких пунктов, текстовое поле и метки. При выборе элемента списка выбранное значение будет отображаться в метке.

Content="{Binding ElementName=TestPage, Path=Content.Children[1].SelectedItem.Content}">

Полный код XAML

<Page x:Class="WPFBinding.Page1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      mc:Ignorable="d" FontSize="14pt" Name="TestPage">
    <StackPanel>
        <TextBlock Name="textBlock1" Text="Первый элемент" HorizontalAlignment="Center" />
        <ListBox Name="listBox1" HorizontalAlignment="Center" Margin="24" Width="208" Height="132">
            <ListBoxItem Content="Радж Кумар Бенивал" />
            <ListBoxItem Content="Дженнифер Тападжиа Дженни" />
            <ListBoxItem Content="Кишан Кант Каху" />
            <ListBoxItem Content="Сама Сикандар Джетли" />
            <ListBoxItem Content="Джинат Чаттерджи" />
        </ListBox>
        <TextBlock  Name="textBlock2" HorizontalAlignment="Center">
            <Label Content="Число символов в четвертом элементе списка = "></Label>
            <Label Content="{Binding ElementName=TestPage, Path=Content.Children[1].Items[3].Content.Length}" Name="label1" />
            <LineBreak></LineBreak>
            <Label Content="Число символов в выбранном элементе = "></Label>
            <Label Content="{Binding ElementName=TestPage, Path=Content.Children[1].SelectedItem.Content.Length}"></Label>
            <LineBreak></LineBreak>
            <Label Content="Текст выбранного элемента = "></Label>
            <Label Content="{Binding ElementName=TestPage, Path=Content.Children[1].SelectedItem.Content}"></Label>
        </TextBlock>
    </StackPanel>
</Page>

Запуск приложения даст следующий результат.

Рис. 1.

Выбор элемента списка:

<Label Content="Число символов в выбранном элементе = "></Label>
<Label Content="{Binding ElementName=TestPage, Path=Content.Children[1].SelectedItem.Content.Length}"></Label>
            <LineBreak></LineBreak>
 <Label Content="Текст выбранного элемента = "></Label>
<Label Content="{Binding ElementName=TestPage, Path=Content.Children[1].SelectedItem.Content}"></Label>

Рис. 2.

Еще один важный момент — как получить день недели в WPF.

Добавьте ссылку:

xmlns:mscorlib="clr-namespace:System.Globalization;assembly=mscorlib"
 
<ListBox Height="156" HorizontalAlignment="Center" Margin="76,55,0,0"
                 Name="listBox1" VerticalAlignment="Top"
                 Width="120"
                 ItemsSource="{Binding Source={x:Static mscorlib:DateTimeFormatInfo.CurrentInfo}, Path=DayNames, Mode=OneTime}" />
        <TextBlock Height="23" HorizontalAlignment="Center"
                   Margin="128,228,52,0" Name="textBlock1"
                   Text="{Binding ElementName=listBox1, Path=SelectedItem, Mode=OneWay}" VerticalAlignment="Top" Width="120" />

Результат будет такой.

Рис. 3.

При выборе дня:

Рис. 4.