簡體   English   中英

在setter中使用綁定屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM