У меня довольно простое представление, которое функционирует как форма поиска.Есть два поля со списком и текстовое поле с кнопкой «поиск».Поиск не может быть выполнен, если в выпадающем списке нет выбора или если текстовое поле пусто.Я использовал IDataErrorInfo в нескольких местах моего приложения, но, похоже, он здесь не подходит (у меня нет SearchPageModel, и я не уверен, как бы я реализовал его в модели представления), ис полным отсутствием средств контроля валидатора, я не уверен, как поступить об этом.Я просто хочу показать сообщение о заполнении всей информации, если пользователь пытается выполнить поиск, не делая этого ранее.Какой самый простой способ?
ОБНОВЛЕНИЕ: Следуя совету в ссылке из первого ответа, я создал правило проверки и изменил свое текстовое поле так, чтобы оно выглядело так:
<TextBox Grid.Column="1" Grid.Row="3" Name="tbxPartNumber" Margin="6">
<TextBox.Text>
<Binding Path="SelectedPartNumber" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<local:RequiredTextValidation/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Однако возникает новая проблема: когда я подхожу к экрану и вписываю что-то в текстовое поле, а затем удаляю его, оно подсвечивается красным, как и ожидалось.Validation.GetHasErrors (tbxPartNumber) возвращает значение true.Если я перехожу на экран и вообще не взаимодействую с текстовым полем, Validation.GetHasErrors (tbxPartNumber) возвращает false.Похоже, что он работает только когда я изменяю текст ... он не будет проверяться, если пользователь просто появится и нажмет на поиск, ничего не печатая.Есть ли способ обойти это?