Xaml 无法将内容(MapItemsControl)添加到类型为“的对象”;MapControl";。设计器中的标记无效

Xaml 无法将内容(MapItemsControl)添加到类型为“的对象”;MapControl";。设计器中的标记无效,xaml,visual-studio-2015,win-universal-app,windows-10-universal,Xaml,Visual Studio 2015,Win Universal App,Windows 10 Universal,我收到一个错误:尝试在MapControl中添加MapItemsControl时,无法向“MapControl”类型的对象添加内容。这是通用Windows应用程序,整个项目正在编译,没有任何问题。应用程序工作,但没有设计师,我无法使我的用户界面,因为我想 有人有这个问题吗?这是某种VS错误吗?我使用的是最新版本的VS2015 Community BTW。我对整个系统(Win10)进行了全新安装,这是VS的新安装。我作为插件安装的一个东西是ReSharper 编辑。 将我的XAML代码添加为文本。

我收到一个错误:尝试在MapControl中添加MapItemsControl时,无法向“MapControl”类型的对象添加内容。这是通用Windows应用程序,整个项目正在编译,没有任何问题。应用程序工作,但没有设计师,我无法使我的用户界面,因为我想

有人有这个问题吗?这是某种VS错误吗?我使用的是最新版本的VS2015 Community BTW。我对整个系统(Win10)进行了全新安装,这是VS的新安装。我作为插件安装的一个东西是ReSharper

编辑。 将我的XAML代码添加为文本。我删除了网格并放置了数据模板。添加MapItemsControl仍有问题

<Page
x:Class="SmartMachi_Win.Pages.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SmartMachi_Win.Pages"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:maps="using:Windows.UI.Xaml.Controls.Maps"
mc:Ignorable="d">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid Width="Auto" Height="Auto" Margin="0,0,0,0">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <TextBlock Text="Near Me" Grid.Row="0" Style="{StaticResource TitleTextBlockStyle}"
                   DataContext="{x:Bind Frame}" Visibility="{Binding PageTitleVisibility}" Margin="20,20,0,0" />
        <maps:MapControl x:Name="myMap" MapServiceToken="..."
                         Margin="0,0,0,0" VerticalAlignment="Stretch" Grid.Row="1" >
            <maps:MapItemsControl>
                <maps:MapItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Button x:Name="MapItemButton" Background="Transparent">
                            Test
                        </Button>
                    </DataTemplate>
                </maps:MapItemsControl.ItemTemplate>
            </maps:MapItemsControl>
        </maps:MapControl>
    </Grid>
</Grid>

试验


更改了ItemTemplate结构。添加MapItemsControl仍有问题…

您应该具有如下XAML结构:

<Page
x:Class="SmartMachi_Win.Pages.Page1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:SmartMachi_Win.Pages"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:maps="using:Windows.UI.Xaml.Controls.Maps"
mc:Ignorable="d">

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid Width="Auto" Height="Auto" Margin="0,0,0,0">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <TextBlock Text="Near Me" Grid.Row="0" Style="{StaticResource TitleTextBlockStyle}"
                   DataContext="{x:Bind Frame}" Visibility="{Binding PageTitleVisibility}" Margin="20,20,0,0" />
        <maps:MapControl x:Name="myMap" MapServiceToken="..."
                         Margin="0,0,0,0" VerticalAlignment="Stretch" Grid.Row="1" >
            <maps:MapItemsControl>
                <maps:MapItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Button x:Name="MapItemButton" Background="Transparent">
                            Test
                        </Button>
                    </DataTemplate>
                </maps:MapItemsControl.ItemTemplate>
            </maps:MapItemsControl>
        </maps:MapControl>
    </Grid>
</Grid>
<maps:MapControl>
    <maps:MapItemsControl>
        <maps:MapItemsControl.ItemTemplate>
            <DataTemplate>
                ...
            </DataTemplate>
        </maps:MapItemsControl.ItemTemplate>
    </maps:MapItemsControl>
</maps:MapControl>

...

MapControl的实现存在一个bug。基本上,不允许将内容放在未定义ContentPropertyAttribute的控件中,MapControl就是这种情况。您的程序运行和编译是一个运行时错误,Xaml团队会对此进行跟踪。在这种情况下,设计师实际上正确地抱怨了错误。

将您的XAML添加到问题中,而不是屏幕截图。也就是说,您肯定不会直接将网格添加到MapItemsControl。考虑设置MaveTimsCube的ItMeTime.问题编辑。添加了Xaml代码,我按照您的建议进行了更改,但运气不好……请注意,您应该避免向公众发布您的MapServiceToken。任何人都可以看到(并使用)它!哦,是的,谢谢,我以前做过,但编辑后忘记了。好吧,实际上我们不能在MapControl中放入任何内容,设计器正在正确地抱怨错误,但运行时错误允许在MapControl中进行控制,对吗?嗯,这对我来说很奇怪。。。早期版本的map控件允许将控件放入其中。那么为什么我们现在不能呢?@Zibiksior让我收回我说过的话。不能“直接”在MapControl中添加控件。事实上,在运行时它很好,因为在MapControl和其中的控件之间秘密添加了一个MapOverlyPresenter。您可以在调试应用程序时通过查看LiveVisualTree看到这一点。由于该类是一个私有api,我认为运行时和xaml设计器之间存在不一致。