XAML是否支持声明非通用IList集合?

时间:2019-01-14 22:36:31

标签: c# list xaml uwp

我有一个实现IList的集合类,但是正在XAML中创建它的实例。

在下面的代码中,如果我将IList更改为使用通用版本-IList<object>-那么该代码可以正常工作。暗示是,IList不受支持。是这种情况,并且/或者应该将其视为错误? ICollection的行为类似。

Microsoft文档here仅声明通常使用Add方法,并且未提及任何接口。 GitHub here上的框架文档明确指出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是一个集合。

0 个答案:

没有答案