我如何使这项工作?
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的基类的任何线索?
答案 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