gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 17:45:27 27 4
gpt4 key购买 nike

我正在尝试在 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…

您可以在 XAML 中创建一个继承自泛型的控件,方法是将 x:TypeArguments根标记上的属性,但控件本身必须是具体的。

关于c# - 在 XAML 中定义的 WPF 窗口上使用泛型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3252241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com