У меня в диалогом окне есть 5 элементов xaml texbox у каждый элемент имеет свою валидацию
<xctk:WatermarkTextBox Watermark="{Binding FirstNameBtnText}"
x:Name="FirstNameTextBox"
Text="{Binding Path=FirstNameProp,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"
/>
<xctk:WatermarkTextBox Watermark="{Binding SecondNameBtnText}"
x:Name="SecondNameTextBox"
Text="{Binding Path=LastNameProp,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,
ValidatesOnDataErrors=True}"/>
<xctk:WatermarkTextBox Watermark="{Binding AdressBtnText}"
x:Name="AdressTextBox"
Text="{Binding Path=AdressProp,
Mode=TwoWay,ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged}"/>
В code behaind реализован интерфейс IDataErrorInfo
public string this[string columnName]
{
get
{
switch (columnName)
{
case nameof(FirstNameProp):
{
return UiString.ControlString(FirstNameProp);
}
case nameof(LastNameProp):
{
return UiString.ControlString(LastNameProp);
}
return null;
}
}
Я не понимаю как правильно выстроить валидацию, чтобы кнопка сохранить изменения была активна только при том условии что все texbox проходят валидацию. Я понимаю что это нужно делать через команду, но вот как связать ошибки всех полей не понятно.
Как вариант, в модель данных добавить свойство bool AllFieldsIsValid (ну или что-нибудь в этом роде), и привязать его к свойству IsEnabled кнопки "сохранить", при реализации интерфейса IDataErrorInfo определить значение для AllFieldsIsValid.
PS. костыль конечно, но должно работать)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости