2

我想知道与此相同的事情: Silverlight 4 Support for x:TypeArguments ...但适用于 Windows 8 Store Apps。

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

我可以使用建议的解决方法,即拥有一个指定泛型类型的“typedef”基类,但这对我来说感觉很hacky..

// 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”类?

非常感谢,乔恩

4

2 回答 2

3

遗憾的是这是不可能的。我从 Microsoft 联系人那里得到了明确的答复:“我可以确认,但 Xaml 中使用的 x:TypeArguments 不是 Windows 应用商店应用程序支持的场景。”

于 2013-01-25T12:02:05.183 回答
0

我很确定答案与 Silverlight 相同。WinRT Xaml 在很多方面更接近 Silverlight Xaml,而不是 WPF,而且他们在包含哪些内容和不包含哪些内容方面做出了各种奇怪的决定。

于 2013-01-24T01:05:58.567 回答