Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xaml Windows 8存储应用程序对x:TypeArguments的支持_Xaml_Generics_Windows Store Apps - Fatal编程技术网

Xaml Windows 8存储应用程序对x:TypeArguments的支持

Xaml Windows 8存储应用程序对x:TypeArguments的支持,xaml,generics,windows-store-apps,Xaml,Generics,Windows Store Apps,我想知道与此相同的事情: ... 但对于Windows 8应用商店应用程序 如果x:TypeArguments不起作用,为什么它可用?还是我遗漏了什么?MainPage.i.g.cs文件是使用非泛型基类自动生成的,即使x:TypeArguments是在XAML中定义的,所以它当然不会编译 我可以使用建议的解决方案,即使用一个“typedef”基类来指定泛型类型,但这让我感觉很不舒服 // A generic PageBase, containing standard ViewModel-rela

我想知道与此相同的事情: ... 但对于Windows 8应用商店应用程序

如果x:TypeArguments不起作用,为什么它可用?还是我遗漏了什么?MainPage.i.g.cs文件是使用非泛型基类自动生成的,即使x:TypeArguments是在XAML中定义的,所以它当然不会编译

我可以使用建议的解决方案,即使用一个“typedef”基类来指定泛型类型,但这让我感觉很不舒服

// A generic PageBase, containing standard ViewModel-related utilities
internal abstract class PageBase<T> : Windows.UI.Xaml.Controls.Page where T : ViewModelBase
{
    protected abstract T ViewModel { get; }
    ...
}

// The hack...
internal abstract class MainPageTypeDef : PageBase<MainViewModel>
{
    // No code goes here...
}

// The page itself
internal sealed partial class MainPage : MainPageTypeDef
{
}

<views:PageBase
    ...
    x:Class="Namespace.MainView"
    x:TypeArguments="store:MainViewModel">
//包含标准ViewModel相关实用程序的通用PageBase
内部抽象类PageBase:Windows.UI.Xaml.Controls.Page其中T:ViewModelBase
{
受保护的抽象视图模型{get;}
...
}
//黑客。。。
内部抽象类MainPageTypeDef:PageBase
{
//这里没有代码。。。
}
//页面本身
内部密封部分类主页面:主页面类型定义
{
}
有人知道有没有办法不使用“typedef”类吗

非常感谢,,
乔恩

我很确定答案和Silverlight的答案是一样的。WinRT Xaml在很多方面比WPF更接近Silverlight Xaml,而且他们已经做出了各种奇怪的决定,包括什么和不包括什么。

遗憾的是,这是不可能的。我从一位微软联系人那里得到了一个明确的答案:“我可以确认,但是在Xaml中使用的x:TypeArguments不受Windows应用商店应用程序支持。”