如何在wpf中使用通用基类而不是窗口?

时间:2013-07-24 17:53:24

标签: wpf xaml generics inheritance

我如何使这项工作?

public partial class MyWindow : View<MyViewModel>
{
}

其中View定义为

public class View<T> : Window where T : IViewModel, new()
{
}

XAML:

<local:View
x:Class="Project.MyWindow"
x:TypeArguments="ViewModels:MyViewModel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 
xmlns:ViewModels="clr-namespace:Mynamespace.ViewModels;assembly=Mynamespace.ViewModels"
xmlns:local="clr-namespace:Project"
>

我收到此错误...命名空间Project中不存在名称View ...当然这样做。

我得到了这个让我感到困惑的错误......“http://schemas.microsoft.com/winfx/2006/xaml”命名空间中不存在“TypeArguments”属性......当然这样做。

关于如何在wpf中使用泛型作为windows的基类的任何线索?

1 个答案:

答案 0 :(得分:4)

这个问题的答案是永远不要在xaml中使用泛型。始终有更好的方法或解决方法。请参阅原始帖子上的评论。

EDIT!

感谢Micky Duncan(参见上面的评论),通过调查这两个链接可以找到这个问题的正确答案:

http://msdn.microsoft.com/en-us/library/ms741843(v=vs.110).aspx http://www.codeproject.com/Articles/37317/Generic-Support-In-XAML