Вместо того, чтобы использовать событие нажатия кнопки, я бы предпочел MVVM-подход с использованием свойства Command и предоставления класса, который реализует интерфейс ICommand . Этот класс может затем указать, включен ли он или нет, через части CanExecute и CanExecuteChanged этого интерфейса, которые будут включать и отключать кнопку. Тем не менее, вы просто делаете код для события click, так что ...
Добавить новый класс конвертера. (Это просто класс, реализующий интерфейс IConverter .) Затем используйте преобразователь в привязке.
// In your converter class, which you could call IsNullOrWhiteSpaceConverter
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
var input = (string)value;
return String.IsNullOrWhiteSpace(input);
}
Объявите конвертер в соответствующем разделе ресурсов XAML (например, для окна или usercontrol) следующим образом:
<yourNamespace:IsNullOrWhiteSpaceConverter x:Key="IsNullOrWhiteSpaceConverter" />
Тогда твоя привязка становится ...
IsEnabled="{Binding ElementName=txtReasonForChange,Path=Text,
Converter={StaticResource IsNullOrWhiteSpaceConverter}}"