private RadListSource <TDataItem> GetRelatedBindingSource(string dataMember) { if (this.relatedBindingSources == null) { this.relatedBindingSources = new Dictionary <string, RadListSource <TDataItem> >(); } foreach (string key in this.relatedBindingSources.Keys) { if (string.Equals(key, dataMember, StringComparison.OrdinalIgnoreCase)) { return(this.relatedBindingSources[key]); } } RadListSource <TDataItem> radListSource = new RadListSource <TDataItem>(this.source); radListSource.bindingContext = this.bindingContext; radListSource.Bind(this.DataSource, dataMember); this.relatedBindingSources[dataMember] = radListSource; return(radListSource); }
private void SyncCurrent(TDataItem item) { if ((object)item == null) { RadListSource <TDataItem> sourceCollection = this.SourceCollection as RadListSource <TDataItem>; if (sourceCollection != null && sourceCollection.Count > 0 && (sourceCollection.Position >= 0 && sourceCollection.Position < sourceCollection.Count)) { item = sourceCollection[sourceCollection.Position]; } } if ((object)item == null && this.Count > 0) { item = this.Items[0]; } if ((object)item == null) { return; } if (!this.PassesFilter(item)) { if (this.Count < 0) { return; } this.SetCurrentPositionCore(this.Count == 0 ? -1 : 0, true, CurrentChangeReason.Sync); } else { if (!this.HasDataOperation) { return; } int newPosition = this.IndexOf(item); if (newPosition == this.CurrentPosition) { return; } this.MoveCurrentToPosition(newPosition); } }