@@ -128,8 +128,7 @@ public TargetedActionGlobalViewModel(List<ComparisonItem> comparisonItems,
128128 [ Reactive ]
129129 public bool IsInconsistentWithNoValidItems { get ; set ; }
130130
131- [ Reactive ]
132- public List < ValidationFailureSummary > FailureSummaries { get ; set ; } = new ( ) ;
131+ public ObservableCollection < ValidationFailureSummary > FailureSummaries { get ; set ; } = new ( ) ;
133132
134133 [ Reactive ]
135134 public string ActionIssuesHeaderMessage { get ; set ; } = string . Empty ;
@@ -287,6 +286,7 @@ private void ShowMissingFieldsWarning()
287286 AreMissingFields = true ;
288287 IsInconsistentWithValidItems = null ;
289288 IsInconsistentWithNoValidItems = false ;
289+ FailureSummaries . Clear ( ) ; // Clear previous validation failure summaries
290290
291291 DoShowWarning ( ) ;
292292 }
@@ -308,7 +308,8 @@ private void ShowConsistencyWarning(AtomicActionConsistencyCheckCanAddResult che
308308 }
309309
310310 // Generate failure summaries with detailed information
311- FailureSummaries = checkCanAddResult . FailedValidations
311+ FailureSummaries . Clear ( ) ;
312+ var summaries = checkCanAddResult . FailedValidations
312313 . GroupBy ( f => f . FailureReason ! . Value )
313314 . Select ( g => new ValidationFailureSummary
314315 {
@@ -317,8 +318,12 @@ private void ShowConsistencyWarning(AtomicActionConsistencyCheckCanAddResult che
317318 LocalizedMessage = _failureReasonLocalizer . GetLocalizedMessage ( g . Key ) ,
318319 AffectedItems = g . Select ( f => f . ComparisonItem ) . ToList ( )
319320 } )
320- . OrderByDescending ( s => s . Count ) // Most frequent failures first
321- . ToList ( ) ;
321+ . OrderByDescending ( s => s . Count ) ; // Most frequent failures first
322+
323+ foreach ( var summary in summaries )
324+ {
325+ FailureSummaries . Add ( summary ) ;
326+ }
322327
323328 AreMissingFields = false ;
324329
0 commit comments