У меня возникли проблемы с запуском пользовательского правила ValidationRule, когда оно связано с привязкой Expander.Header. На самом деле, единственное место, где я могу заставить эти пользовательские правила запускаться, - это блок DataGrid.RowValidationRules...
Расширитель определен в моем файле Window XAML следующим образом;
<Expander Style="{StaticResource ValidatedSecondLevelExpanderStyle}">
<Expander.Header>
<Binding Path="Name" Mode="OneWay" ValidatesOnDataErrors="True" NotifyOnValidationError="True">
<Binding.ValidationRules>
<ValidationRules:BoundObjectIsValid />
</Binding.ValidationRules>
</Binding>
</Expander.Header>
</Expander>
Связанное свойство Name отображается правильно, но правило проверки BoundObjectIsValid не вызывается. Возможно ли это, и если да, то что я упускаю?
Я знаю, что я мог бы альтернативно реализовать IDataErrorInfo для связанного объекта, однако объект не может разумно проверить себя без некоторого контекста, предоставляемого другими частями системы. Рефакторинг возможен, но я хотел бы сначала заставить работать ValidationRules!