Cannot implicitly convert type 'System.Collections.Generic.IEnumerable GroupingLayer to 'System.Collections.IList'

StackOverflow https://stackoverflow.com/questions/21988295

Domanda

I have this code :

var selected = from c in myList group c by c.MainTitle into n select new GroupingLayer<string, MyObject>(n);
            longListSelector.ItemsSource = selected; //Error here


public class GroupingLayer<TKey, TElement> : IGrouping<TKey, TElement>
        {

            private readonly IGrouping<TKey, TElement> grouping;

            public GroupingLayer(IGrouping<TKey, TElement> unit)
            {
                grouping = unit;
            }

            public TKey Key
            {
                get { return grouping.Key; }
            }

            public IEnumerator<TElement> GetEnumerator()
            {
                return grouping.GetEnumerator();
            }

            System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
            {
                return grouping.GetEnumerator();
            }
        }

What does its trying to tell me ?, how to solve this ?

I am Working on windows Phone 8 application.

È stato utile?

Soluzione

It's telling you that longListSelector.ItemsSource is of type IList, but the value stored in selected is an IEnumerable, and you can't assign one to the other.

Try calling ToList():

var selected = (from c in myList
                group c by c.MainTitle into n
                select new GroupingLayer<string, MyObject>(n)).ToList();

longListSelector.ItemsSource = selected;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top