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