У меня есть файл .xaml и файл .cs, которые имеют общее значение с Binding.
Для простоты у меня есть 1 кнопка и 1 текстовое поле. Я хочу, чтобы кнопка была отключена, если в текстовом поле нет символа.
Вот два кода xaml для привязки:
<TextBox Name="txtSend" Text="{Binding Path=CurrentText,UpdateSourceTrigger=PropertyChanged}"></TextBox>
<Button IsEnabled="{Binding Path=IsTextValid}" Name="btnSend">Send</Button>
Два свойства в файле .cs выглядят так:
public string CurrentText
{
get
{
return this.currentText;
}
set
{
this.currentText = value;
this.PropertyChange("CurrentText");
this.PropertyChange("IsTextValid");
}
}
public bool IsTextValid
{
get
{
return this.CurrentText.Length > 0;
}
}
this.PropertyChanged
- это просто метод, который вызывает PropertyChanged
из INotifyPropertyChanged.
Проблема в том, что мне нужно вызвать this.PropertyChange("IsTextValid");
в установщике CurrentText, чтобы можно было изменить состояние кнопки.
Вопрос 1) Это хороший способ сделать это ... если правила становятся более сложными, мне может потребоваться вызвать много PropertyChanged ...?
Вопрос 2) Моя кнопка активируется при загрузке формы. Как я могу заставить его проверить метод с самого начала?