public override bool TryCreateSelection(int index, bool ensure, out Selection <TItem> selection) { var source = GetSource(index); if (TryGetItem(source, ensure, out var item) == false) { TryGetItem(index, ensure, out item); } var value = SelectorCore.GetValue(item, source); selection = new Selection <TItem>(index, item, source, value); return(selection.IsEmpty == false); }
public override bool TryCreateSelection(object source, bool ensure, out Selection <TItem> selection) { var index = GetIndexOfSource(source); if (TryGetItem(source, ensure, out var item) == false && index != -1) { TryGetItem(index, ensure, out item); } var value = SelectorCore.GetValue(item, source); selection = new Selection <TItem>(index, item, source, value); return(true); }
public virtual int GetIndexOfValue(object value) { var count = Count; for (var i = 0; i < count; i++) { TryGetItem(i, false, out var item); var source = GetSource(i); var itemValue = SelectorCore.GetValue(item, source); if (CompareValues(itemValue, value)) { return(i); } } return(-1); }