0

我有两个单选按钮和两个文本框

<RadioButton x:Name="AdmLnkRadio1" GroupName="AdmLnkgr1" Content="Link #1"/>
<RadioButton x:Name="AdmLnkRadio2" GroupName="AdmLnkgr1" Content="Link #2"/>

<TextBox x:Name="AdmLnkTextBoxName1" />                                     
<TextBox x:Name="AdmLnkTextBoxName2" IsEnabled="False" >
  <TextBox.Style>
    <Style BasedOn="{StaticResource TextBoxBase}" TargetType="TextBox" >
        <Style.Triggers>  

            <!--Trigger 1  -->                                                        
            <DataTrigger Binding="{Binding ElementName=AdmLnkRadio1, Path=IsChecked}" Value="True">
                  <Setter Property="Text" Value="{Binding ElementName=AdmLnkTextBoxName1, Path=Text}"></Setter>
                  <Setter Property="IsEnabled" Value="False"></Setter>
            </DataTrigger>

             <!--Trigger 2 - Doesn't Fires UP!!!! -->  
            <DataTrigger Binding="{Binding ElementName=AdmLnkRadio2, Path=IsChecked}" Value="True">
                  <Setter Property="Text" Value=""></Setter>
                  <Setter Property="IsEnabled" Value="True"></Setter>
            </DataTrigger>

        </Style.Triggers>                                                            
     </Style>
   </TextBox.Style>
</TextBox>

当用户检查单选按钮 1 时,触发器 1 起作用,第二个文本框文本绑定到第一个文本框的文本。但是当第二个单选按钮被选中时,第二个触发器应该启动,但它没有。谢谢你的帮助

4

1 回答 1

1

它确实会触发,但是因为您设置IsEnabled为固定False值,所以您的样式不会覆盖它(依赖属性设置优先级列表)。尝试设置IsEnabled你的Style,像这样

<TextBox x:Name="AdmLnkTextBoxName1" />
<TextBox x:Name="AdmLnkTextBoxName2">
   <TextBox.Style>
       <Style TargetType="TextBox" >
           <Setter Property="IsEnabled" Value="False"/>
           <Style.Triggers>
               <DataTrigger Binding="{Binding ElementName=AdmLnkRadio1, Path=IsChecked}" Value="True">
                   <Setter Property="Text" Value="{Binding ElementName=AdmLnkTextBoxName1, Path=Text}"/>
                   <Setter Property="IsEnabled" Value="False"/>
               </DataTrigger>

               <DataTrigger Binding="{Binding ElementName=AdmLnkRadio2, Path=IsChecked}" Value="True">
                   <Setter Property="Text" Value=""/>
                   <Setter Property="IsEnabled" Value="True"/>
               </DataTrigger>

           </Style.Triggers>
       </Style>
   </TextBox.Style>
</TextBox>
于 2013-06-06T09:32:20.540 回答