Поддерживает ли XAML объявление неуниверсальной коллекции IList? - PullRequest
0 голосов
/ 15 января 2019

У меня есть класс коллекции, который реализует 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 является коллекцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...