|
@@ -21,6 +21,7 @@ using System.Windows.Threading;
|
|
using InABox.Clients;
|
|
using InABox.Clients;
|
|
using InABox.Core;
|
|
using InABox.Core;
|
|
using InABox.WPF;
|
|
using InABox.WPF;
|
|
|
|
+using Microsoft.CodeAnalysis.CSharp.Syntax;
|
|
using Microsoft.Xaml.Behaviors;
|
|
using Microsoft.Xaml.Behaviors;
|
|
using Syncfusion.Data;
|
|
using Syncfusion.Data;
|
|
using Syncfusion.DocIO.ReaderWriter.DataStreamParser.Escher;
|
|
using Syncfusion.DocIO.ReaderWriter.DataStreamParser.Escher;
|
|
@@ -977,6 +978,7 @@ namespace InABox.DynamicGrid
|
|
|
|
|
|
private void DataGrid_CurrentCellValueChanged(object? sender, CurrentCellValueChangedEventArgs e)
|
|
private void DataGrid_CurrentCellValueChanged(object? sender, CurrentCellValueChangedEventArgs e)
|
|
{
|
|
{
|
|
|
|
+ // Are we sure that this function is ever useful? It seems that since the data in the grid hasn't been updated by this point, this function is essentially useless (the data is updated in EndEdit). Probably need to check the GridCheckBoxColumn
|
|
var headerrows = HasOption(DynamicGridOption.FilterRows) ? 2 : 1;
|
|
var headerrows = HasOption(DynamicGridOption.FilterRows) ? 2 : 1;
|
|
if (e.RowColumnIndex.RowIndex < headerrows)
|
|
if (e.RowColumnIndex.RowIndex < headerrows)
|
|
return;
|
|
return;
|
|
@@ -1042,6 +1044,12 @@ namespace InABox.DynamicGrid
|
|
if (table is null) return;
|
|
if (table is null) return;
|
|
|
|
|
|
var colno = table.Columns.IndexOf(datacolname);
|
|
var colno = table.Columns.IndexOf(datacolname);
|
|
|
|
+ if (colno < 0)
|
|
|
|
+ {
|
|
|
|
+ // This column is not in the list. Because of linked properties, a single lookup change can cause a cascade of updates,
|
|
|
|
+ // many of which are likely unnecessary; hence, we shall ignore any which are unnecessary.
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
var corecol = Data.Columns[colno].ColumnName;
|
|
var corecol = Data.Columns[colno].ColumnName;
|
|
var corerow = Data.Rows[row];
|
|
var corerow = Data.Rows[row];
|
|
corerow[corecol] = value;
|
|
corerow[corecol] = value;
|
|
@@ -1147,6 +1155,10 @@ namespace InABox.DynamicGrid
|
|
var colno = DataGridItems.Columns.IndexOf(mappedname);
|
|
var colno = DataGridItems.Columns.IndexOf(mappedname);
|
|
var column = Data.Columns[colno];
|
|
var column = Data.Columns[colno];
|
|
var value = DataGridItems.Rows[iRow][mappedname];
|
|
var value = DataGridItems.Rows[iRow][mappedname];
|
|
|
|
+ if(value is DBNull)
|
|
|
|
+ {
|
|
|
|
+ value = CoreUtils.GetDefault(column.DataType);
|
|
|
|
+ }
|
|
|
|
|
|
UpdateData(new Dictionary<CoreColumn, object?>() { { column, value } });
|
|
UpdateData(new Dictionary<CoreColumn, object?>() { { column, value } });
|
|
|
|
|