[英]Setting value of a bound property from the setter of another bound property
[英]Using a bound property in a setter
我有一個按鈕,該按鈕使用StackPanel和三個TextBlocks顯示三行文本。
每個文本塊的可見性都使用相同的綁定,如下所示:
<TextBlock Name="bF12Tl1"
Text="Line1"
Visibility="{Binding F12ShowText}"
HorizontalAlignment="Center"/>
到目前為止,我已經能夠在觸發器中使用綁定,但不能在設置器中使用。 是否可以使用此綁定來更改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>
謝謝
這樣簡單的事情可能會有所幫助
<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,所以我在記事本中寫了它,所以這里或那里可能缺少“或”括號。但是我看不出為什么這行不通。
它比我想象的要簡單得多,我根本不需要使用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>
如果有人對這是否是一個好的解決方案有意見,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.