Compare commits
2 Commits
dc4321c1d6
...
baaceacdd3
| Author | SHA1 | Date |
|---|---|---|
|
|
baaceacdd3 | |
|
|
44103b9613 |
|
|
@ -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
|
||||
|
|
@ -30,8 +30,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
protected bool IsFirstInitializeParameters;
|
||||
protected bool IsFirstInitializeParameterCore;
|
||||
|
||||
private TSignalRDataSource _dataSource = null!;
|
||||
private List<TDataItem> _dataSourceParam = [];
|
||||
private TSignalRDataSource? _dataSource = null!;
|
||||
private AcObservableCollection<TDataItem>? _dataSourceParam = [];
|
||||
private string _gridLogName;
|
||||
|
||||
public MgGridBase() : base()
|
||||
|
|
@ -61,7 +61,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
{
|
||||
_filterText = value;
|
||||
|
||||
if (_dataSource != null! && _dataSource.FilterText != value)
|
||||
if (_dataSource != null && _dataSource.FilterText != value)
|
||||
{
|
||||
_dataSource.FilterText = value;
|
||||
ReloadDataSourceAsync().Forget();
|
||||
|
|
@ -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);
|
||||
if (_dataSource != null) // && _dataSourceParam is List<TDataItem> workingReferenceList)
|
||||
{
|
||||
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,7 +157,7 @@ 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;
|
||||
|
|
@ -166,9 +184,13 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
|
||||
private Task OnDataSourceLoaded()
|
||||
{
|
||||
Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource.Count}");
|
||||
Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource?.Count}");
|
||||
|
||||
//if(_dataSourceParam.GetType() == typeof()AcObservableCollection<TDataItem>)
|
||||
|
||||
SetGridData(_dataSource!.GetReferenceInnerList());
|
||||
//else Reload();
|
||||
|
||||
Reload();
|
||||
//_dataSource.LoadItem(_dataSource.First().Id).Forget();
|
||||
return OnDataSourceChanged.InvokeAsync(_dataSource);
|
||||
}
|
||||
|
|
@ -177,7 +199,9 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
|||
{
|
||||
if (firstRender)
|
||||
{
|
||||
if (_dataSourceParam != null!) await _dataSource.LoadDataSource(_dataSourceParam, true, true);
|
||||
if (_dataSource == null) return;
|
||||
|
||||
if (_dataSourceParam != null) await _dataSource.LoadDataSource(_dataSourceParam, true, true);
|
||||
else _dataSource.LoadDataSourceAsync(true).Forget();
|
||||
}
|
||||
|
||||
|
|
@ -193,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)))!;
|
||||
}
|
||||
}
|
||||
|
|
@ -300,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