Expander.Header バインディングに関連付けられている場合、カスタム ValidationRule を起動するのに問題があります。実際、これらのカスタム ルールを起動できると思われる唯一の場所は、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 を動作させたいと思っています!