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
|
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 TDataItem : class, IId<TId>
|
||||||
where TId : struct
|
where TId : struct
|
||||||
where TLoggerClient : AcLoggerBase
|
where TLoggerClient : AcLoggerBase
|
||||||
|
|
@ -31,7 +31,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
||||||
protected bool IsFirstInitializeParameterCore;
|
protected bool IsFirstInitializeParameterCore;
|
||||||
|
|
||||||
private TSignalRDataSource? _dataSource = null!;
|
private TSignalRDataSource? _dataSource = null!;
|
||||||
private List<TDataItem>? _dataSourceParam = [];
|
private AcObservableCollection<TDataItem>? _dataSourceParam = [];
|
||||||
private string _gridLogName;
|
private string _gridLogName;
|
||||||
|
|
||||||
public MgGridBase() : base()
|
public MgGridBase() : base()
|
||||||
|
|
@ -115,13 +115,31 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
_dataSourceParam = value as List<TDataItem>;
|
_dataSourceParam = value as AcObservableCollection<TDataItem>;
|
||||||
|
|
||||||
if (_dataSource != null) // && _dataSourceParam is List<TDataItem> workingReferenceList)
|
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()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
if (Logger == null)
|
if (Logger == null)
|
||||||
|
|
@ -139,8 +157,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
||||||
_dataSource.FilterText = FilterText;
|
_dataSource.FilterText = FilterText;
|
||||||
//_dataSource = new SignalRDataSource<TDataItem>(SignalRClient, crudTags, ContextIds) { FilterText = FilterText };
|
//_dataSource = new SignalRDataSource<TDataItem>(SignalRClient, crudTags, ContextIds) { FilterText = FilterText };
|
||||||
|
|
||||||
Data = _dataSource;
|
SetGridData(_dataSource.GetReferenceInnerList());
|
||||||
|
|
||||||
_dataSource.OnDataSourceLoaded += OnDataSourceLoaded;
|
_dataSource.OnDataSourceLoaded += OnDataSourceLoaded;
|
||||||
_dataSource.OnDataSourceItemChanged += OnDataSourceItemChanged;
|
_dataSource.OnDataSourceItemChanged += OnDataSourceItemChanged;
|
||||||
|
|
||||||
|
|
@ -168,7 +186,11 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
||||||
{
|
{
|
||||||
Logger.Debug($"{_gridLogName} OnDataSourceLoaded; Count: {_dataSource?.Count}");
|
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();
|
//_dataSource.LoadItem(_dataSource.First().Id).Forget();
|
||||||
return OnDataSourceChanged.InvokeAsync(_dataSource);
|
return OnDataSourceChanged.InvokeAsync(_dataSource);
|
||||||
}
|
}
|
||||||
|
|
@ -195,7 +217,7 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
||||||
}
|
}
|
||||||
else if (dataItem.Id is int)
|
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)))!;
|
dataItem.Id = (TId)(_typeConverterId.ConvertTo(newId, typeof(TId)))!;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -302,8 +324,8 @@ public abstract class MgGridBase<TSignalRDataSource, TDataItem, TId, TLoggerClie
|
||||||
|
|
||||||
if (e.IsNew)
|
if (e.IsNew)
|
||||||
{
|
{
|
||||||
if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await InsertDataItemAsync(0, dataItem);
|
if (EditNewRowPosition is GridEditNewRowPosition.FixedOnTop or GridEditNewRowPosition.Top) await AddDataItemAsync(dataItem);
|
||||||
else await AddDataItemAsync(dataItem);
|
else await InsertDataItemAsync(0, dataItem);
|
||||||
}
|
}
|
||||||
else await UpdateDataItemAsync(dataItem);
|
else await UpdateDataItemAsync(dataItem);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue