Почему не срабатывает привязка к свойству Text в WPF & materialdesign
не подтягивается свойство от элемента ipUdBase к элементу whobase2
<materialDesign:Flipper.BackContent>
<Grid Height="256" Width="300">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<materialDesign:ColorZone Mode="Accent" Padding="6">
<StackPanel Orientation="Horizontal">
<Button Style="{StaticResource MaterialDesignToolForegroundButton}" Command="{x:Static materialDesign:Flipper.FlipCommand}" HorizontalAlignment="Left">
<materialDesign:PackIcon Kind="ArrowLeft" HorizontalAlignment="Right" />
</Button>
<TextBlock Margin="8 0 0 0" VerticalAlignment="Center">Ввести данные</TextBlock>
</StackPanel>
</materialDesign:ColorZone>
<Grid Grid.Row="1" Margin="0 6 0 0" HorizontalAlignment="Center" VerticalAlignment="Top" Width="172">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBox x:Name="ipUdBase" materialDesign:HintAssist.Hint="ip адресс базы" materialDesign:HintAssist.IsFloating="True" Margin="0 12 0 0" />
<TextBlock x:Name="whoBase2" HorizontalAlignment="Center" Text="{Binding ElementName=ipUdBase, Path=Text, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"></TextBlock>
</Grid>
</Grid>
</materialDesign:Flipper.BackContent>
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Попробуйте вот так.
<TextBox x:Name="ipUdBase" materialDesign:HintAssist.Hint="ip адресс базы" materialDesign:HintAssist.IsFloating="True" Margin="0 12 0 0" />
<TextBlock x:Name="whoBase2" HorizontalAlignment="Center" Text="{Binding Text, ElementName=ipUdBase}" />
Не знаю, что в вашем случае произошло, но у меня безотказно работает следующий пример.
Кстати, не получилось ли так, что контролы мешают друг другу? Попробуйте StackPanel, или в разные Grid.Row их поместите.
<StackPanel Orientation="Vertical">
<TextBox x:Name="MyTextBox"/>
<TextBlock Text="{Binding Text, ElementName=MyTextBox}"/>
</StackPanel>
Ну или если предположить что Binding здесь не работает по какой-то непонятной причине, то можно попробовать решить через обработчик события TextChanged
<TextBox x:Name="ipUdBase" materialDesign:HintAssist.Hint="ip адресс базы" materialDesign:HintAssist.IsFloating="True" Margin="0 12 0 0" TextChanged="ipUdBase_TextChanged"/>
<TextBlock x:Name="whoBase2" HorizontalAlignment="Center"/>
private void ipUdBase_TextChanged(object sender, TextChangedEventArgs e)
{
whoBase2.Text = (sender as TextBox).Text;
}