private void BindingList(ViewModelDataSourceList rViewModelDataSource) { var rViewModelObj = rViewModelDataSource.ViewModelProp.GetValue(); if (rViewModelObj != null) { var rListObservableObj = rViewModelObj as IObservableEvent; rListObservableObj.ChangedHandler += () => { var rListObj2 = (IList)rViewModelDataSource.ViewModelProp.GetValue(); var nListCount2 = rListObj2 != null ? rListObj2.Count : 0; var nOldCount = rViewModelDataSource.ListView.totalCount; rViewModelDataSource.ListView.totalCount = nListCount2; if (nListCount2 == nOldCount) { rViewModelDataSource.ListView.RefreshCells(); } else { rViewModelDataSource.ListView.RefillCells(); } }; var rListObj = rViewModelObj as IList; var nListCount = rListObj != null ? rListObj.Count : 0; rViewModelDataSource.ListView.OnFillCellFunc = (rTrans, nIndex) => { this.OnListViewFillCellFunc(rTrans, nIndex, rListObj); }; rViewModelDataSource.ListView.totalCount = nListCount; rViewModelDataSource.ListView.RefillCells(); } else { Debug.LogError($"ViewModel {rViewModelDataSource.ViewModelPath} getValue is null.."); } }
protected override void OnEnable() { base.OnEnable(); mTarget = this.target as ViewModelDataSourceList; }