2016-05-11 2 views
-1

Следующий источник привязан к свойству Items Source сетки и не знает, почему этот прилив невозможен; Я получаю следующую ошибку: «Невозможно передать объект типа List в IList». Что не так и что будет работать в этом случае?Возможно ли передать список IList другого типа?

public IList<TypeTwo> Source { get; set; } 

    public SomeViewModel() 
    { 
     List<TypeOne> result = db.GetInfo().ToList(); 
     Source = (IList<TypeTwo>)result; 

    // This works if the IList is of Type TypeOne 
    // Source = db.GetInfo().ToList(); 
    } 

    public class TypeTwo { 
     // The same properties of TypeOne 
    } 

ответ

2

Вы должны бросить каждый элемент в отдельности, а не весь список сразу:

Source = result 
    .Select(x => new TypeTwo() 
    { 
     SharedProperty1 = x.SharedProperty1, 
     SharedProperty2 = x.SharedProperty2, 
     .... 
    }) 
    .ToList(); 

// only if TypeTwo derives from TypeOne, or implements an explicit cast operator 
//Source = result.Cast<TypeTwo>().ToList(); 
+0

Это также помог мне очистить класс TypeTwo, а также просто выбрать необходимые свойства. Спасибо! – usefulBee

Смежные вопросы