Я пытаюсь использовать MvvmLight сделать ViewModel связывание в Xamarin AndroidMake ICollection работать как IList
MvvmLight принимает IList в качестве параметра для связывания данных, но все ViewModels используют ICollection (приложение первоначально было только окна и в настоящее время переносится на Android, мы не можем изменить ICollection на IList)
Я знаю, что IList расширяет ICollection, так что..Я думаю, что это скорее образец-то, что является лучшим способом, который мы делаем, чтобы эти ICollection работали как IList?
Casting является очевидным решением, но не все ICollection реализует IList, поэтому мы пытаемся избежать этого
Мы также не можем сделать копию оригинальной коллекции, потому что нам нужно двухстороннее связывание
Вы можете создать оболочку, реализующую IList, которая маршрутизирует вызовы в базовую коллекцию. Это также может позаботиться о частичной эмуляции индексации (предполагая, что Xamarin использует это) с ElementAt. Это ломается, если реализация потребления пытается выполнить вставку, хотя, поскольку вы не можете выполнить вставку с произвольным доступом; вам нужно будет восстановить всю коллекцию в этом случае, удалив все, а затем добавив ее снова. –