Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }