在setter中使用绑定属性
本文关键字:绑定 属性 setter | 更新日期: 2023-09-27 18:07:10
我有一个按钮,使用StackPanel和三个textblock显示三行文本。
每个文本块的可见性使用相同的绑定,如下所示:
<TextBlock Name="bF12Tl1"
Text="Line1"
Visibility="{Binding F12ShowText}"
HorizontalAlignment="Center"/>
到目前为止,我已经能够在触发器中使用绑定,但不能在setter中使用绑定。是否有可能使用此绑定来改变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>
谢谢
这比我想象的要简单得多,我根本不需要使用DataBinding。
使用每个TextBlock的名称和"TargetName"可以让我很容易地改变与按钮不直接相关的项目的属性。
<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>
如果有人有意见,这是否是一个好的解决方案,请告诉我。
这样简单的事情可能会有帮助
<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,所以可能有"或括号遗漏这里或那里。但我看不出这有什么不行的理由。