簡體   English   中英

將控件的可見性綁定到組合框選擇

[英]Bind visibility of a control to combobox selection

我有一個綁定到Enum數據類型的組合框。 現在,組合框綁定工作正常,但是當我嘗試將復選框的可見性綁定到組合框選擇時,此綁定無法正常工作。 我想要做的是,只要組合框選擇為“還原”,我都希望復選框可見。 下面是我正在使用的代碼。

 <CheckBox.Style>
     <Style TargetType="CheckBox">
       <Style.Triggers>
          <DataTrigger Binding="{Binding ElementName=cmbOperation, Path=SelectedValue}" Value="Restore">
              <Setter Property="Visibility" Value="Visible"></Setter>
          </DataTrigger>
      </Style.Triggers>
   </Style>
</CheckBox.Style>

我嘗試更改SelectedValue,SelectedItem,SelectedValue.TosString()之間的路徑(無希望),但是無論何時組合框選擇“ Restore”時,我都無法通過復選框更改其可見性。 我應該在綁定到組合框的枚舉中進行任何更改嗎? 如果沒有,我還做錯了什么?

我敢打賭,您已經在XAML中的CheckBox上設置了Visibility

<CheckBox
    Visibility="Collapsed"
    >

但是,由於WPF中的依賴項屬性值優先級規則,它將覆蓋樣式中發生的所有事情。 這是設計使然,當您仔細考慮所有含義時,這並不是一個壞主意,但它會傷及WPF新手。

這很容易解決:只需在樣式的設置器中設置起始值即可。 樣式可以做什么,樣式可以撤消。

<CheckBox
    >
    <CheckBox.Style>
        <Style TargetType="CheckBox">
            <Setter Property="Visibility" Value="Collapsed" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding ElementName=cmbOperation, Path=SelectedValue}" Value="Restore">
                    <Setter Property="Visibility" Value="Visible" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </CheckBox.Style>
</CheckBox>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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