OK, the XAML is quite simple and uses MVVM to bind to an ICommand SomeCommand { get; }
property on a view model:
It is enabled because that's the default state. Disabling it automatically would be an arbitrary measure that gives rise to other problems.
If you want to have a button without an associated command be disabled, bind the IsEnabled property to SomeCommand
using an appropriate converter, e.g.:
[ValueConversion(typeof(object), typeof(bool))]
public class NullToBooleanConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value !== null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}