构造函数无效,因为无法解析参数

Constructor is not valid because parameter cannot be resolved

这是另一个。

我有两个 ViewModel:MainViewModelConnectionViewModel 以及两个视图:MainWindowConnectionView

自动绑定效果很好,每个视图模型都转到它的视图。 问题是 ConnectionViewModel 在其构造函数中采用了 Connection 模型参数。所以当它被实例化的时候,我在输出中得到这条消息 window (感谢记录器):

构造函数无效,因为参数 'connection' 无法从依赖项解析器解析

public ConnectionViewModel(Connection connection, IMessageService messageService, IAnotherService anotherService)

因此在 ConnectionViewModel.

中得到一个 null Connection

我可能错过了(几个)步骤。模型不是应该用视图模型创建的吗?我是否必须事先实例化它,如果是,在哪里?还是我必须先注册?

好的,我明白我错过了什么。

嵌套UserControls的用法本来是关于列表的;从这个角度来看,您的父 ViewModel 包含模型的集合 属性 是有意义的。

因为我只有一个Connection,而不是一个列表,并且想把所有东西分开干净,所以我没有考虑在我的MainViewModel中放一个Connection,但是您仍然需要 将 属性 绑定为 XAML.

中的 UserControl 的 DataContext

我的 MainWindow.xaml 中有 <views:ConnectionView />MainViewModel 中几乎没有。

我需要的是在 MainViewModel 中有一个 Connection 属性:

public class MainViewModel : ViewModelBase
{
    public MainViewModel(IMessageService)
    {
        Connection = new Connection();
    }

    public Connection Connection
    {
        get { return GetValue<Connection>(ConnectionProperty); }
        set { SetValue(ConnectionProperty, value); }
    }
    public static readonly PropertyData ConnectionProperty = RegisterProperty("Connection", typeof(Connection));
    /*...*/
}

和 xaml 中的绑定:

<views:ConnectionView DataContext="{Binding Connection}"/>