定义textbox的样式,以及相应的触发事件
触发事件需要选择datatrigger,绑定的值为combobox的text,当text符合要求时,设置textbox的property如isreadonly,fousable的值。当combobox的值为修改锁定时,textbox不可选中和修改。
<Window.Resources>
<Style x:Key="TxtDark" TargetType="TextBox">
<Setter Property="Background" Value="#f0f0f0"></Setter>
<Setter Property="Height" Value="30"></Setter>
<Setter Property="FontSize" Value="15"></Setter>
<Setter Property="BorderBrush" Value="#e3e2e2"></Setter>
<Setter Property="BorderThickness" Value="1"></Setter>
<Setter Property="Padding" Value="5,5"></Setter>
<Setter Property="VerticalContentAlignment" Value="Center"></Setter>
<!--设定触发器,根据修改锁定与否,确定文本框能否修改-->
<Style.Triggers>
<DataTrigger Binding="{Binding Text , ElementName=cmb}" Value="修改锁定">
<Setter Property="IsReadOnly" Value="True"/>
<Setter Property="Focusable" Value="False"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
xml代码
combobox选中修改锁定这一项时,textbox无法修改。
<ComboBox Name="cmb" VerticalContentAlignment="Center" Margin="5" FontSize="15">
<ComboBoxItem Name="cb" Content="修改锁定" IsSelected="True" FontSize="15"></ComboBoxItem>
<ComboBoxItem Content="修改解锁" FontSize="15"></ComboBoxItem>
</ComboBox>
<TextBox Text="{Binding Name}" Style="{StaticResource TxtDark}"></TextBox>