通用 ReactiveUserControl "cannot be edited in Design view"

Generic ReactiveUserControl "cannot be edited in Design view"

我将 UserControl 更改为 ReactiveUserControl,现在无法查看设计视图。我可以做些什么来让设计师使用 ReactiveUserControl 吗?

当您的控件或 window 直接继承自泛型 class 时,Visual Studio 设计器会出现问题。这也是 WinForms 的一个很常见的问题。您可以通过定义位于通用 ReactiveUserControl 和您的控件之间的另一个非通用 class 来解决此问题:

public partial class MyUserControl : MyUserControlBase
{
    public MyUserControl()
    {
        InitializeComponent();
    }
}

public abstract class MyUserControlBase: ReactiveUserControl<MyUserControlViewModel>
{
}

在XAML中,我们的根对象元素被定义为基础元素(MyUserControlBase)并且它的class声明连接到上面定义的部分class (MyUserControl):

<myNameSpace:MyUserControlBase
    x:Class="MyNameSpace.MyUserControl"
    xmlns:myNameSpace="clr-namespace:MyNameSpace"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">