Field の値が変わった時の処理順が次のように変わりました。
| 変更前 | 変更後 | |
|---|---|---|
| 1 | Layout の OnFieldDataChanged 発火 |
Field の OnDataChanged 発火 |
| 2 | 親 Field の通知 / UI 再描画 | 拡張フック |
| 3 | Field の OnDataChanged 発火 |
Layout の OnFieldDataChanged 発火 |
| 4 | 拡張フック | 親 Field の通知 / UI 再描画 |
「List 内 Field の OnDataChanged で SetError → 親 List の OnChildDataChanged で集計」というパターンが正しく動くようになります。変更前は親が先に呼ばれて検出漏れしていました。
Field の OnDataChanged の中で「自動更新される他 Field の最新値」を読んでいたコードは、古い値が見えるようになります。
例: composite ID(複数 Field を組み合わせて自動生成される ID)の更新後の値を、ソース Field の OnDataChanged から読んでいた場合、変更前は更新後 ID が見えていましたが、変更後は更新前 ID が見えます。
該当する処理は、IdField 自身の OnDataChanged に移してください。
// 変更前: ソース Field の OnDataChanged で Id を見ていた
void Code_OnDataChanged()
{
Toaster.Info($"新しいID: {Id.Value}"); // 古い ID が見えるようになった
}
// 変更後: IdField 自身の OnDataChanged で書く
void Id_OnDataChanged()
{
Toaster.Info($"新しいID: {Id.Value}");
}