【问题标题】:XamlParseException when I inherit a Page from a Generic base class当我从通用基类继承页面时出现 XamlParseException
【发布时间】:2012-03-14 09:34:35
【问题描述】:

我目前正在使用这个确切的代码:

public class ViewModelAwarePage<T> : Page
{        
}

public class BaseMainMenuView 
    : ViewModelAwarePage<String>
{     
}

public sealed partial class MainMenuView
    : BaseMainMenuView
{
    public MainMenuView()
    {
        this.InitializeComponent();
    }
}

还有xaml:

<local:BaseMainMenuView
x:Name="pageRoot"
x:Class="Tutorial.UI.WinRT.Views.MainMenuView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Tutorial.UI.WinRT.Views"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">

<Grid Background="{StaticResource ApplicationPageBackgroundBrush}">

</Grid>

</local:BaseMainMenuView>

当我尝试构建此页面时,我收到错误“BaseMainMenuView 不支持网格作为内容”

用户代码未处理 Windows.UI.Xaml.Markup.XamlParseException
HResult=-2144665590 Message=BaseMainMenuView 不支持网格 作为内容。 [行:12 位置:22] Source="" StackTrace: 在 Windows.UI.Xaml.Application.LoadComponent(对象组件,Uri resourceLocator,ComponentResourceLocation 组件资源位置) 在 c:\Projects\Misc\MvvmCross\Sample 中的 Tutorial.UI.WinRT.Views.MainMenuView.InitializeComponent() - Tutorial\Tutorial\Tutorial.UI.WinRT\obj\x86\Debug\Views\MainMenuView.g.i.cs:line 34 在 c:\Projects\Misc\MvvmCross\Sample 中的 Tutorial.UI.WinRT.Views.MainMenuView..ctor() - Tutorial\Tutorial\Tutorial.UI.WinRT\Views\MainMenuView.xaml.cs:第 40 行 在 Tutorial.UI.WinRT.XamlTypeInfo.XamlTypeInfoProvider.Activate_3_MainMenuView() 在 c:\Projects\Misc\MvvmCross\Sample - Tutorial\Tutorial\Tutorial.UI.WinRT\obj\x86\Debug\XamlTypeInfo.g.cs:line 122 在 Tutorial.UI.WinRT.XamlTypeInfo.XamlUserType.ActivateInstance() 中 c:\Projects\Misc\MvvmCross\Sample - Tutorial\Tutorial\Tutorial.UI.WinRT\obj\x86\Debug\XamlTypeInfo.g.cs:line 314 内部异常:

如果我尝试将代码简化为:

public class ViewModelAwarePage : Page
{        
}

public class BaseMainMenuView 
    : ViewModelAwarePage
{     
}

public sealed partial class MainMenuView
    : BaseMainMenuView
{
    public MainMenuView()
    {
        this.InitializeComponent();
    }
}

然后页面加载正常。

我完全不理解这个例外 - 我找到的所有 Bing/Google 点击都表明 Silverlight 2 存在问题。

谁能解释这个错误 - 任何人都可以就我如何能够从通用页面继承提出想法吗?

【问题讨论】:

    标签: xaml windows-8 microsoft-metro windows-runtime


    【解决方案1】:

    Stuart 请在 Release Preview 上试试这个,因为我相信这个问题可以解决

    【讨论】:

    • 本周我遇到了这个确切的问题,我正在使用 Win8 RTM 和 Visual Studio 2012 Update 1,有什么想法吗?
    猜你喜欢
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多