powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding по element name
2 сообщений из 2, страница 1 из 1
Binding по element name
    #39523725
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Подскажите пожалуйста как правильно обратиться к элементу по имени, который находится в HeaderTemplate?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
<GroupBox>
    <GroupBox.HeaderTemplate>
         <CheckBox Name="IsFit"
    </GroupBox.HeaderTemplate>

     <StackPanel IsEnabled="{Binding ElementName= ? IsFit ?, Path=IsChecked }">
     </StackPanel>
<GroupBox>
...
Рейтинг: 0 / 0
Binding по element name
    #39523796
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

никак. Такой ответ устроит?
Если следовать вашей логике и идти неправильным путём:
То нужно найти корневой элемент GroupBox через VisualTree, затем найти элемент в этом дереве, довольно длительная операция, если элементов много.

Более правильный пути:
Вариант 1:
У вас есть модель представления, к которой привязано значение этого CheckBox'а в режиме TwoWay
Есть StackPanel, которое так же завязан на это свойство, но уже OneWay
Вариант 2:
Есть промежуточное AttachedProperty которое приаачено к GroupBox

Вариант №1, если вы используйте DataTemplate'ы, наиболее правильный. Так как DataTemplate, это именно шаблон представления для модели представляения.

А еще можно вот так, elementName и referenсe работают через логическое дерево
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <GroupBox>
            <GroupBox.Header>
                    <CheckBox x:Name="IsFit" Content="Header" Tag="Test"/>
            </GroupBox.Header>
            <StackPanel>
                <TextBlock Text="{Binding IsChecked, Source={x:Reference IsFit}}"/>
                <TextBlock Text="{Binding IsChecked, ElementName=IsFit}"/>
            </StackPanel>
        </GroupBox>
    </Grid>
</Window>
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Binding по element name
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]