Всем привет.
Есть простое окно (см. код ниже), с двумя RadioButton-ми, поскольку текст в них формируется динамически, то использую TextBlock. А т.к. текст может быть произвольной длины, то добавил ScrollViewer и получилось не плохо, но вылезла одна проблема. При нажатии на TextBlock кнопка RadioButton-а не выбирается, приходится нажимать на саму кнопку, что не удобно. Если убрать ScrollViewer, то всё работает нормально.
Есть пару вопросов:
1) Что я упустил и как можно исправить данную проблему?
2) Я пытался капнуть в сторону использования триггеров, если например делаем Click на TextBlock или TextBlock.IsFocused = true, выставлять RadioButton.IsChecked = true, но не смог разобраться как это сделать.
Как поменять свойство у родительского контрола, на основании свойства или события дочернего контрола?
<Window x:Class="ChooseView"
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"
d:DesignHeight="210" d:DesignWidth="436" MaxHeight="210" MaxWidth="436" WindowStartupLocation="CenterScreen" ResizeMode="NoResize">
<Border Padding="5" BorderBrush="Gray" BorderThickness="2">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="Выберите пункт назначения" TextWrapping="Wrap" Margin="5"/>
<StackPanel Grid.Row="1" Margin="5 10 5 5">
<RadioButton Margin="0 0 0 10" MaxHeight="36" IsChecked="{Binding IsFirst}">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<TextBlock TextWrapping="Wrap" Text="{Binding FirstInformation}"/>
</ScrollViewer>
</RadioButton>
<RadioButton Margin="0 0 0 0" MaxHeight="36" IsChecked="{Binding IsSecond}">
<TextBlock TextWrapping="Wrap" Text="{Binding SecondInformation}"/>
</RadioButton>
</StackPanel>
<Button Grid.Row="2" Command="{Binding OkCommand}" Content="ОК" HorizontalAlignment="Center" Width="100" Margin="5"/>
</Grid>
</Border>
</Window>