我在 WPF 中有几个文本框和单选按钮集合。我想使用触发器设置只有一个单选按钮的 IsChecked 属性,如果有任何文本框获得焦点,该按钮具有名称。我检查了几个例子,但我找不到我要找的东西。请记住,我们使用的是 MVVM 模式,并且没有任何代码。
我尝试了以下代码并出现此编译错误:
无法在样式设置器上设置 TargetName 属性
<UserControl.Resources>
<Style x:Name="myTest" TargetType="TextBox">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="RadioButton.IsChecked" Value="True" TargetName="myRadioButton"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
我阅读了其他帖子,DataTrigger 解决了这个问题。
<Style x:Name="myTest2" TargetType="RadioButton" >
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=myTextBox}" Value="True">
<Setter Property="IsChecked" Value="True" ></Setter>
</DataTrigger>
</Style.Triggers>
</Style>