簡體   English   中英

WPF將ComboBox與CheckBox綁定

[英]WPF bind ComboBox with CheckBox

我想將ComboBox與CheckBox綁定,以便在未選中 CheckBox時啟用ComboBox。 我可以直接在xaml文件中執行此操作,而無需在代碼中添加任何其他變量嗎?
在下面的代碼中,當myCheckBox 被選中時,myComboBox被啟用。

<ComboBox Name="myComboBox" SelectedIndex="0" 
     IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked}">

您需要一個轉換器將布爾值轉換為它的取反值。 為了做到這一點,首先創建一個從IValueConverter繼承的類,如下所示:

public sealed class InvertedBooleanConverter : IValueConverter
{
    public Object Convert( Object value, Type targetType, Object parameter, CultureInfo culture )
    {
        if ( value is Boolean )
        {
            return (Boolean)value ? false : true;
        }

        return null;
    }


    public Object ConvertBack( Object value, Type targetType, Object parameter, CultureInfo culture )
    {
        throw new NotImplementedException();
    }
}

然后,您需要在資源中添加轉換器,如下所示:

<Window.Resources>
    <local:InvertedBooleanConverter x:Key="InvertedBooleanConverter" />
</Window.Resources>

最后,只需將轉換器添加到綁定中,如下所示:

<ComboBox Name="myComboBox"
          SelectedIndex="0"
          IsEnabled="{Binding ElementName=myCheckBox, Path=IsChecked, Converter={StaticResource InvertedBooleanConverter}}">

暫無
暫無

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

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