我有一个TextBox,它使用的所有TextBoxes都具有相同的样式,因此我可以为所有TextBox拥有相同的外观。
但是,在特定的TextBox中,我需要根据条件进行可视修改,所以我尝试这样做:
<TextBox
Text="{Binding MyBinding, Mode=OneWay}"
Style="{StaticResource TextBoxStyle1}">
<TextBox.Style>
<Style TargetType="StackPanel">
<Setter Property="Visibility" Value="Visible"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=thisView, Path=DataContext.MyPropertyInViewModel}" Value="3">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
问题是我无法两次设置样式,所以我不知道如何定义数据触发器以隐藏文本框。
我该怎么办?
谢谢。
答案 0 :(得分:2)
删除样式=“ {StaticResource TextBoxStyle1}” 然后将BasedOn标记添加到新样式BasedOn =“ =” {StaticResource TextBoxStyle1}“
ReferenceField
这将允许您重用现有样式。但是,如果现有样式已经定义了您不想要的DataTrigger,则需要为此文本框创建一个新样式。