我想知道同样的事情: 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”课程?
非常感谢, 乔恩
答案 0 :(得分:3)
可悲的是,这是不可能的。我从Microsoft联系人那里得到了一个明确的答案:“我可以确认这一点,但x:在Xaml中使用的TypeArguments不支持Windows Store应用程序。”
答案 1 :(得分:0)
我很确定答案与Silverlight相同。 WinRT Xaml在许多方面比WPF更接近Silverlight Xaml,并且他们已经做了各种奇怪的决定,包括什么和不包括什么。