У меня есть класс коллекции, который реализует IList
, но я изо всех сил пытаюсь создать его экземпляр в XAML.
В приведенном ниже коде, если я изменю IList
на общую версию - IList<object>
- тогда код работает нормально. Подразумевается, что IList
, как ни странно, не поддерживается. Это так и / или это следует считать ошибкой?
ICollection
ведет себя аналогично.
В документации Microsoft здесь указано только то, что обычно используется метод Add
, и не упоминаются никакие интерфейсы. Документация по фреймворку на GitHub здесь специально говорит, что IList
является основой для концепций списка XAML - хотя неясно (для меня), относится ли это к WPF или UWP (или ...).
MyList.cs:
...
namespace Project
{
public class MyList : IList
{
...
}
}
Test.xaml
<Page
x:Class="Project.Views.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Project">
<Grid>
<Grid.Resources>
<local:MyList x:Key="TestList">
<x:String>Test</x:String>
</local:MyList>
</Grid.Resources>
</Grid>
</Page>
Это вызывает две ошибки:
1. Missing Content Property definition for Element 'MyList' to receive content 'String'
2. Unknown member '_UnknownContent' on element 'MyList'
, что говорит о том, что процессор XAML не подозревает, что MyList
является коллекцией.