我在同一网格中有3个WPF用户控件,一个像带有两个单选按钮的单选按钮组,另外两个像TextBox。我的目的是:如果选择第一个单选按钮,允许用户在TextBox1中输入,如果选择了第二个单选按钮,则禁用TextBox1中的用户输入并将其Text属性绑定到TextBox2.Text。我使用了数据触发器来实现这一目标。绑定控件的XAML样本如下所示:
<my:TextControl Name="TextControl1">
<my:TextControl.Style>
<Style TargetType="{x:Type my:TextControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=MyRadioButtons1, Path=IsFirstRadioButtonChecked}" Value="true">
<Setter Property="IsEnabled" Value="true"/>
<Setter Property="Text" Value=""/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=MyRadioButtons1, Path=IsSecondRadioButtonChecked}" Value="true">
<Setter Property="IsEnabled" Value="false"/>
<Setter Property="Text" Value="{Binding ElementName=TextControl2, Path=Text}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</my:TextControl.Style>
</my:TextControl>
我测试了我的代码,它在第一点按预期工作。然后我选择第一个单选按钮,在TextControl1中键入内容,然后选择第二个单选按钮。轰!......但什么也没发生。 TextControl1中的值仍然是我键入的文本而不是TextControl2的Text。看来TextControl1无法再绑定到TextControl2,无论我在单选按钮组中选择什么选项。任何人都知道这种情况?? THX