XamlParseException, когда я наследую страницу от базового класса - PullRequest
2 голосов
/ 14 марта 2012

Я сейчас работаю с этим точным кодом:

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 не поддерживает Grid как контент»

Windows.UI.Xaml.Markup.XamlParseException не было обработано кодом пользователя
HResult = -2144665590 Сообщение = BaseMainMenuView не поддерживает Grid как содержание. [Строка: 12 Позиция: 22] Source = "" StackTrace: в Windows.UI.Xaml.Application.LoadComponent (объектный компонент, Uri resourceLocator, ComponentResourceLocation componentResourceLocation) в Tutorial.UI.WinRT.Views.MainMenuView.InitializeComponent () в c: \ Projects \ Misc \ MvvmCross \ Sample - Учебное пособие \ Tutorial \ Tutorial.UI.WinRT \ OBJ \ x86 \ Debug \ Views \ MainMenuView.g.i.cs: линия 34 в Tutorial.UI.WinRT.Views.MainMenuView..ctor () в c: \ Projects \ Misc \ MvvmCross \ Sample - Учебник \ Учебник \ Tutorial.UI.WinRT \ Views \ MainMenuView.xaml.cs: строка 40 в Tutorial.UI.WinRT.XamlTypeInfo.XamlTypeInfoProvider.Activate_3_MainMenuView () в c: \ Projects \ Misc \ MvvmCross \ Sample - Учебное пособие \ Tutorial \ Tutorial.UI.WinRT \ OBJ \ x86 \ Debug \ XamlTypeInfo.g.cs: линия 122 в Tutorial.UI.WinRT.XamlTypeInfo.XamlUserType.ActivateInstance () в c: \ Projects \ Misc \ MvvmCross \ Sample - Учебное пособие \ Tutorial \ Tutorial.UI.WinRT \ OBJ \ x86 \ Debug \ XamlTypeInfo.g.cs: линия 314 InnerException:

Если я попытаюсь уменьшить код до:

public class ViewModelAwarePage : Page
{        
}

public class BaseMainMenuView 
    : ViewModelAwarePage
{     
}

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

тогда страница загружается нормально.

Я вообще не понимаю исключения - все найденные мной хиты Bing / Google предполагают проблемы с Silverlight 2.

Может кто-нибудь объяснить ошибку - кто-нибудь может предложить идеи о том, как я мог бы унаследовать от общей страницы?

1 Ответ

1 голос
/ 06 июня 2012

Стюарт, пожалуйста, попробуйте это в Release Preview, так как я считаю, что это исправлено

...