|
@@ -29,7 +29,11 @@ namespace InABox.DynamicGrid
|
|
|
Focusable = false;
|
|
|
}
|
|
|
|
|
|
- protected virtual bool CheckChanged()
|
|
|
+ /// <summary>
|
|
|
+ /// Trigger a change notification.
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="changedFields">A list of fields that have been changed. If empty, then it is assumed that all child fields are changed.</param>
|
|
|
+ protected virtual bool CheckChanged(params string[] changedFields)
|
|
|
{
|
|
|
//Logger.Send(LogType.Information, "", string.Format("{0}({1}).CheckChanged()", GetType().EntityName().Split('.').Last(), ColumnName));
|
|
|
if (Loaded && !Updating)
|
|
@@ -39,9 +43,19 @@ namespace InABox.DynamicGrid
|
|
|
{
|
|
|
var values = new Dictionary<string, object?>();
|
|
|
var sColumn = string.IsNullOrEmpty(ColumnName) ? "" : ColumnName;
|
|
|
- foreach(var (k, v) in GetValues())
|
|
|
+ if(changedFields.Length > 0)
|
|
|
{
|
|
|
- values[k] = v;
|
|
|
+ foreach(var field in changedFields)
|
|
|
+ {
|
|
|
+ values[$"{ColumnName}.{field}"] = GetChildValue(field);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ foreach(var (k, v) in GetChildValues())
|
|
|
+ {
|
|
|
+ values[$"{ColumnName}.{k}"] = v;
|
|
|
+ }
|
|
|
}
|
|
|
foreach (var key in OtherValues.Keys)
|
|
|
values[key] = OtherValues[key];
|