Windows 8商店应用程序支持x:TypeArguments

时间:2013-01-23 11:20:50

标签: xaml generics windows-store-apps

我想知道同样的事情: Silverlight 4 Support for x:TypeArguments ...但是对于Windows 8商店应用程序。

为什么x:TypeArguments不可用?或者我错过了什么? MainPage.i.g.cs文件是使用非泛型基类自动生成的,即使在XAML中定义了x:TypeArguments - 当然它也不会编译。

我可以使用一个“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">

有人知道是否有办法没有“typedef”课程?

非常感谢, 乔恩

2 个答案:

答案 0 :(得分:3)

可悲的是,这是不可能的。我从Microsoft联系人那里得到了一个明确的答案:“我可以确认这一点,但x:在Xaml中使用的TypeArguments不支持Windows Store应用程序。”

答案 1 :(得分:0)

我很确定答案与Silverlight相同。 WinRT Xaml在许多方面比WPF更接近Silverlight Xaml,并且他们已经做了各种奇怪的决定,包括什么和不包括什么。