You can enable or disable WPF elements based on if they are null or not. This is not supported, but you can create a simple value converter.
/// <summary>
/// Converts null to boolean.
/// </summary>
/// <remarks>
/// If parameter is not specified or specified with null:
/// if passed value is null then true is returned, otherwise false.
/// If parameter is specified then inversion is done:
/// if passed value is null then false is returned, otherwise true.
/// </remarks>
[ValueConversion(typeof(object), typeof(bool))]
public class NullToBoolValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool result = value == null ? true : false;
if (parameter != null)
return !result;
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
}
This value converter allows me to bind to any property taking a boolean argument with the following syntax in XAML.
<local:NullToBoolValueConverter x:Key="NullToBoolValueConverter"/>
<ComboBox.IsEnabled>
<Binding ElementName="TetsComboBox" Path="SelectedItem" Converter="{StaticResource NullToBoolValueConverter}" ConverterParameter="true" />
</ComboBox.IsEnabled>