c# – 在XAML中定义的WPF窗口上使用泛型参数

我正在尝试在XAML中创建一个Window派生类,它可以采用泛型参数,但我似乎无法在XAML中定义泛型参数,以便它生成与我的代码隐藏文件匹配的部分类.

我想要完成的是替换所有MessageBox调用以询问用户问题,我可以在哪里给出有意义的按钮标题(‘保存并退出’/’退出而不保存’/’不要退出’类型的东西) .我希望能够向窗口传递一个限制为System.Enum的泛型参数,该参数定义所选选项的返回值:

<Window x:Class="EvilPenguin.MultipleChoiceQuestionBox">
    ...
public partial class MultipleChoiceQuestionBox<T> : Window where T : System.Enum
{
    public MultipleChoiceQuestionBox()
    {
        InitializeComponent();
    }

    public T SelectedOption
    {
        get;
    }
}

>有没有办法让我的XAML生成一个具有正确泛型参数的分部类?
>我做错了吗?出于某种原因这是一个坏主意,还是有更简单的方法
>目前在XAML中这是不可能的吗? x:TypeArgument属性并不能完全符合我的要求,但它表明XAML的至少某些方面知道泛型参数

任何帮助或提示都非常感谢

解决方法

你不能这样做.这是 my answer to this similar SO question

不,您不能在XAML中声明泛型类型.从http://social.msdn.microsoft.com/forums/en-US/wpf/thread/02ca0499-80af-4c56-bb80-f1185a619a9e开始:

Hello,you can use generic as long as
you don’t use XAML. But unfortunately,
if you want to use XAML to define your
control,you can’t use generic…

您可以通过在根标记上放置x:TypeArguments属性来在XAML中创建继承自泛型类型的控件,但控件本身必须具体.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...