C# 有没有办法解决自定义用户控件上的无参数构造函数错误?

C# 有没有办法解决自定义用户控件上的无参数构造函数错误?,c#,wpf,C#,Wpf,我有一个Wpf应用程序,它具有特定视图子集的抽象基类,以及相应的视图模型,如下所示: public abstract class BaseForm<TViewModel> : UserControl, IBaseForm where TViewModel: BaseViewModel { protected BaseForm(TViewModel viewModel) { DataContext = viewModel; } pri

我有一个Wpf应用程序,它具有特定视图子集的抽象基类,以及相应的视图模型,如下所示:

 public abstract class BaseForm<TViewModel> : UserControl, IBaseForm where TViewModel: BaseViewModel
{
    protected BaseForm(TViewModel viewModel)
    {
        DataContext = viewModel;
    }

    private TViewModel ViewModel
    {
        get { return DataContext as TViewModel; }
    }

    //Left out remaining implementation details 
}

 public abstract class BaseViewModel : ViewModelBase, IDisposable, IActiveAware, IDocumentContent, IStateAware
{
    //Left out implementation details
}
以下是一个实现示例:

<forms:BaseForm x:TypeArguments="viewModels:ProjectManagementViewModel" x:Class="MyProject.ProjectManagement"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:forms="clr-namespace:Eka.Common.Wpf.Forms;assembly=Eka.Common.Wpf"
         xmlns:viewModels="clr-namespace:MyProject.ViewModels"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<Grid>

</Grid>
有没有办法修改我的类以删除此错误

编辑:


根据我的评论,这个问题似乎有点虚幻,我在我的单元测试项目中有一些编译错误,我一直忽略这些错误,在解决之后,这些错误也消失了,我只是在尝试解决其他设计器错误时才再次看到它们,但并不一致。

您是否考虑过创建一个私有的无参数构造函数?@jclozano我快速尝试了一下,但它似乎什么都没做。然而,我花了一点时间修复了我的单元测试项目中的一些编译错误,我在重构时忽略了这些错误,结果发现这些错误消失了,我无法让它们再次发生。。。
<forms:BaseForm x:TypeArguments="viewModels:ProjectManagementViewModel" x:Class="MyProject.ProjectManagement"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:forms="clr-namespace:Eka.Common.Wpf.Forms;assembly=Eka.Common.Wpf"
         xmlns:viewModels="clr-namespace:MyProject.ViewModels"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<Grid>

</Grid>
public partial class ProjectManagement
{
    public ProjectManagement(ProjectManagementViewModel viewModel) : base(viewModel)
    {
        InitializeComponent();
    }
}