Added a manual grid refresh after validation since this seems not to work automatically anymore

This commit is contained in:
Daniel Schick 2026-01-28 08:35:41 +01:00
parent 9d4f608383
commit 79ddbf1572
2 changed files with 38 additions and 27 deletions

View File

@ -838,7 +838,7 @@ namespace ENI2
{
List<MessageViolation> vViolations = new List<MessageViolation>();
List<MessageError> vErrors = new List<MessageError>();
Dictionary<Message, MessageValidationCounts> counts = new Dictionary<Message, MessageValidationCounts>();
Dictionary<Message, MessageValidationCounts> counts = new Dictionary<Message, MessageValidationCounts>();
RuleEngine ruleEngine = new RuleEngine();
foreach (Message aMessage in messagesSnapshot)
@ -855,7 +855,7 @@ namespace ENI2
ViolationCount = violations.Count > 0 ? (int?)violations.Count : null,
PositionViolationCount = violations.Count > 0 ? (int?)violations.Count(v => !v.Identifier.IsNullOrEmpty()) : null
};
counts[aMessage] = messageCounts;
counts[aMessage] = messageCounts;
string messageGroup = this.MessageGroupForMessage(aMessage);
@ -1393,20 +1393,20 @@ namespace ENI2
}
}
return new ValidationResult(vViolations, vErrors, counts);
}
return new ValidationResult(vViolations, vErrors, counts);
}
private void ApplyValidationResult(ValidationResult result, bool showMessages)
{
// TODO: clear highlighting
foreach (KeyValuePair<Message, MessageValidationCounts> entry in result.Counts)
{
Message aMessage = entry.Key;
MessageValidationCounts messageCounts = entry.Value;
aMessage.ErrorCount = messageCounts.ErrorCount;
aMessage.ViolationCount = messageCounts.ViolationCount;
aMessage.PositionViolationCount = messageCounts.PositionViolationCount;
}
foreach (KeyValuePair<Message, MessageValidationCounts> entry in result.Counts)
{
Message aMessage = entry.Key;
MessageValidationCounts messageCounts = entry.Value;
aMessage.ErrorCount = messageCounts.ErrorCount;
aMessage.ViolationCount = messageCounts.ViolationCount;
aMessage.PositionViolationCount = messageCounts.PositionViolationCount;
}
foreach (MessageError me in result.Errors)
{
@ -1461,6 +1461,12 @@ namespace ENI2
MessageBox.Show(Properties.Resources.textValidationOK, Properties.Resources.textValidation, MessageBoxButton.OK, MessageBoxImage.Information);
}
}
if (controlCache.TryGetValue(Properties.Resources.textOverview, out DetailBaseControl overviewControl) &&
overviewControl is OverViewDetailControl ovdc)
{
ovdc.RefreshMessageGrid();
}
}
private void ApplyCrewEffectsWarningSuppression()
@ -1486,17 +1492,17 @@ namespace ENI2
private sealed class ValidationResult
{
internal ValidationResult(List<MessageViolation> violations, List<MessageError> errors, Dictionary<Message, MessageValidationCounts> counts)
{
Violations = violations;
Errors = errors;
Counts = counts;
}
internal List<MessageViolation> Violations { get; }
internal List<MessageError> Errors { get; }
internal Dictionary<Message, MessageValidationCounts> Counts { get; }
}
internal ValidationResult(List<MessageViolation> violations, List<MessageError> errors, Dictionary<Message, MessageValidationCounts> counts)
{
Violations = violations;
Errors = errors;
Counts = counts;
}
internal List<MessageViolation> Violations { get; }
internal List<MessageError> Errors { get; }
internal Dictionary<Message, MessageValidationCounts> Counts { get; }
}
private sealed class MessageValidationCounts
{

View File

@ -341,8 +341,8 @@ namespace ENI2.DetailViewControls
}
}
public void UpdateCore()
{
public void UpdateCore()
{
this.UnregisterTextboxChange(this.textBoxDisplayId);
this.textBoxDisplayId.DataContext = null;
@ -367,8 +367,13 @@ namespace ENI2.DetailViewControls
//};
//sid.UpdateId(this.Core.DisplayId);
//sid.Show();
this.Core.IsDirty = false; // ist ja schon gespeichert..
}
this.Core.IsDirty = false; // ist ja schon gespeichert..
}
internal void RefreshMessageGrid()
{
this.dataGridMessages?.Items?.Refresh();
}
#endregion