我有一个类似于this post的问题。
简而言之,如果您在WPF中创建对话框,则可以从Visual Studio中获得:
<Window x:Class="FrontEnd.View.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DiabetesFrontEnd.View"
mc:Ignorable="d"
Title="Window1" Height="300" Width="300">
...
创建为xaml的一部分,并且
public partial class Window1 : Window
{
...
作为后面的代码。提问者询问的是,如果您插入的场景中插入了一些基类场景,即xpml会发生什么情况,即
public partial class Window1 : BaseWindow
{
.....
其中
public class BaseWindow : Window
{
...
我的问题是对此的扩展。如果您遇到上述情况,但使用
public class BaseWindow<T> : Window
{
...
我显然也有
public partial class Window1 : BaseWindow<SomeConcreteClass>
{
...
是否可以用xaml表示此层次结构?如果是这样,xaml是什么样的?我专门考虑在这里使用泛型,而不是对象。我刚刚遇到了泛型看起来有用的场景,但是我不确定如何在涉及xaml的WPF中实现它。非常感谢。
答案 0 :(得分:1)
是的,您应该在XAML标记中使用x:TypeArguments directive。
namespace WpfApp1
{
public class BaseWindow<T> : Window { }
public class SomeConcreteClass { }
}
Window1.xaml.cs:
public partial class Window1 : BaseWindow<SomeConcreteClass>
{
public Window1()
{
InitializeComponent();
}
}
Window1.xaml:
<local:BaseWindow x:Class="WpfApp1.Window1"
x:TypeArguments="local:SomeConcreteClass"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="Window1" Height="300" Width="300">
<Grid>
</Grid>
</local:BaseWindow>