附加类型 DependencyProperty 不适用于自定义类型

Attached Type DependencyProperty not working with custom types

我在我的项目中创建了一个附件 Type DependencyProperty。现在,当它与默认命名空间以外的类型一起使用时,我得到一个 XamlParseException 和错误消息 Failed to create a 'System.Type' from the text 'local:SomeClass'.。使用例如ButtonGrid 作为值不会引发异常。

Class重现问题:

namespace TypePropertyTest
{
    public class SomeClass
    { }
}

Class 包含附加的 DP:

namespace TypePropertyTest
{
    using System;
    using Windows.UI.Xaml;

    public static class TypeProperties
    {
        public static readonly DependencyProperty MyTypeProperty =
            DependencyProperty.RegisterAttached(
                "MyType",
                typeof(Type),
                typeof(TypeProperties),
                new PropertyMetadata(null));

        public static void SetMyType(DependencyObject d, Type type) => d.SetValue(MyTypeProperty, type);
        public static Type GetMyType(DependencyObject d) => (Type)d.GetValue(MyTypeProperty);
    }
}

MainPage.xaml:

<Page
    x:Class="TypePropertyTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="using:TypePropertyTest"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid local:TypeProperties.MyType="local:SomeClass">
    </Grid>
</Page>

项目目标版本 1803 (10.0; Build 17134)Fall Creators Update (10.0; Build 16299) 是最低版本。

显然,可以通过将项目的目标版本更新为 >= 1809 的版本来解决该问题(使用 18091903 进行测试)。