我有一个按钮,使用StackPanel和三个TextBlocks显示三行文本。
每个文本块的可见性使用相同的绑定,如下所示:
<TextBlock Name="bF12Tl1"
Text="Line1"
Visibility="{Binding F12ShowText}"
HorizontalAlignment="Center"/>
到目前为止,我已经能够在触发器中使用绑定,但在Setters中却没有。 是否可以使用此绑定来更改Setter中所有三个TextBlock的可见性,如下所示?
<Trigger Property="IsEnabled" Value="False">
<Setter Property="BorderThickness" Value="4"/>
<Setter Property="BorderBrush" Value="#737373"/>
<Setter Property="Background" Value="Gray"/>
//(Use DataBinding F12ShowText to change visibility here)
</Trigger>
谢谢
答案 0 :(得分:0)
这样简单可能会有所帮助
<Button x:Name="MyButton"/>
<Style TargetType=TextBlock>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName= MyButton, Path=IsEnabled}" Value="false>
<Setter Property="Visibility" Value="Hidden/>
</DataTrigger>
</Style.Triggers>
</Style>
请注意我在记事本中写了它,因为我没有VS运行atm,所以可能有&#34;或支架在这里或那里丢失。但我不明白为什么这不起作用的原因。
答案 1 :(得分:0)
它比我认为的要简单得多,我根本不需要使用DataBinding。
使用每个TextBlock的名称以及&#34; TargetName&#34;允许我轻松更改与按钮没有直接关系的项目的属性。
<Trigger Property="IsEnabled" Value="False">
<Setter Property="BorderThickness" Value="4"/>
<Setter Property="BorderBrush" Value="#737373"/>
<Setter Property="Background" Value="Gray"/>
<Setter TargetName="bF12Tl1" Property="Visibility" Value="Hidden"/>
<Setter TargetName="bF12Tl2" Property="Visibility" Value="Hidden"/>
<Setter TargetName="bF12Tl3" Property="Visibility" Value="Hidden"/>
</Trigger>
如果有人认为这是一个好的解决方案,请告诉我。