I have found it useful to enble or disable WPF elements based on if they are null or not. This is not supported out of the box so I need a simple value converter. The simple value converter has been updated to support all things that has a Count property.
public class NullToBooleanConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) return false; PropertyInfo propertyInfo = value.GetType().GetProperty("Count"); if (propertyInfo != null) { int count = (int) propertyInfo.GetValue(value, null); return count > 0; } if (!(value is bool || value is bool?)) return true; return value; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return value; } }
The simple value converter above allows me to disable any element with the following syntax in XAML.
<local:NullToBooleanConverter x:Key="nullToBooleanConverter"/> <Button IsEnabled="{Binding Path=Owned, Converter={StaticResource nullToBooleanConverter}}" Content="Tapir"/>
The converter can of course be used for any other property taking a boolean argument.
No comments:
Post a Comment