improvements
This commit is contained in:
parent
44103b9613
commit
baaceacdd3
|
|
@ -19,7 +19,7 @@ public interface IMgGridBase : IGrid
|
|||
}
|
||||
|
||||
public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClient> : DxGrid, IMgGridBase
|
||||
where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, List<TDataItem>>
|
||||
where TSignalRDataSource : AcSignalRDataSource<TDataItem, TId, AcObservableCollection<TDataItem>>
|
||||
where TDataItem : class, IId<TId>
|
||||
where TId : struct
|
||||
where TLoggerClient : AcLoggerBase
|
||||
|
|
@ -31,7 +31,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
protected bool IsFirstInitializeParameterCore;
|
||||
|
||||
private TSignalRDataSource? _dataSource = null!;
|
||||
private List<TDataItem>? _dataSourceParam = [];
|
||||
private AcObservableCollection<TDataItem>? _dataSourceParam = [];
|
||||
private string _gridLogName;
|
||||
|
||||
public MgGridBase() : base()
|
||||
|
|
@ -115,13 +115,31 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
}
|
||||
set
|
||||
{
|
||||
_dataSourceParam = value as List<TDataItem>;
|
||||
_dataSourceParam = value as AcObservableCollection<TDataItem>;
|
||||
|
||||
if (_dataSource != null) // && _dataSourceParam is List<TDataItem> workingReferenceList)
|
||||
_dataSource.SetWorkingReferenceList(_dataSourceParam);
|
||||
{
|
||||
SetWorkingReferenceList(_dataSourceParam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void SetWorkingReferenceList(AcObservableCollection<TDataItem>? referenceList)
|
||||
{
|
||||
_dataSource?.SetWorkingReferenceList(referenceList);
|
||||
|
||||
SetGridData(referenceList);
|
||||
}
|
||||
|
||||
public void SetGridData(object? data)
|
||||
{
|
||||
if (ReferenceEquals(Data, data)) return;
|
||||
|
||||
BeginUpdate();
|
||||
Data = data;
|
||||
EndUpdate();
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
if (Logger == null)
|
||||
|
|
@ -139,8 +157,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
_dataSource.FilterText = FilterText;
|
||||
//_dataSource = new SignalRDataSource<TDataItem>(SignalRClient, crudTags, ContextIds) { FilterText = FilterText };
|
||||
|
||||
Data = _dataSource;
|
||||
|
||||
SetGridData(_dataSource.GetReferenceInnerList());
|
||||
|
||||
_dataSource.OnDataSourceLoaded += OnDataSourceLoaded;
|
||||
_dataSource.OnDataSourceItemChanged += OnDataSourceItemChanged;
|
||||
|
||||
|
|
@ -168,7 +186,11 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
{
|
||||
Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource?.Count}");
|
||||
|
||||
Reload();
|
||||
//if(_dataSourceParam.GetType() == typeof()AcObservableCollection<TDataItem>)
|
||||
|
||||
SetGridData(_dataSource!.GetReferenceInnerList());
|
||||
//else Reload();
|
||||
|
||||
//_dataSource.LoadItem(_dataSource.First().Id).Forget();
|
||||
return OnDataSourceChanged.InvokeAsync(_dataSource);
|
||||
}
|
||||
|
|
@ -195,7 +217,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
}
|
||||
else if (dataItem.Id is int)
|
||||
{
|
||||
var newId = -1 * (new Random().Next());
|
||||
var newId = -1 * AcDomain.NextUniqueInt32;
|
||||
dataItem.Id = (TId)(_typeConverterId.ConvertTo(newId, typeof(TId)))!;
|
||||
}
|
||||
}
|
||||
|
|
@ -302,8 +324,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
|
||||
if (e.IsNew)
|
||||
{
|
||||
if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await InsertDataItemAsync(0, dataItem);
|
||||
else await AddDataItemAsync(dataItem);
|
||||
if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await AddDataItemAsync(dataItem);
|
||||
else await InsertDataItemAsync(0, dataItem);
|
||||
}
|
||||
else await UpdateDataItemAsync(dataItem);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue