我需要一些帮助将viewModel绑定到我创建的两个usercontrol视图。
创建了一个应该包含这两个用户控件的预约窗口。
我得到了什么:
ReservationView(Window)类
public partial class ReservationView : Window
{
public ReservationView()
{
InitializeComponent();
//DataContext = null;
}
}
ReservationListView(Usercontrol)类:
public partial class ReservationListView : UserControl, IViewReservationListViewModel
{
public ReservationListView(IViewReservationListViewModel viewModel)
{
InitializeComponent();
DataContext = viewModel;
}
}
IViewReservationListViewModel只是一个空接口,它在usercontrol视图和viewModel之间建立联系。
ReservationListViewModel
public class ReservationListViewModel : INotifyPropertyChanged, IViewReservationListViewModel
{
public ReservationListViewModel()
{
}
}
当我尝试设置本地时:" usercontrol"在ReservationView里面的xaml中,我收到以下错误:
The type "ReservationListView" does not include any accessible constructors.
当我使用MVVM时,如何将这两个usercontrol链接到相应的viewModel?
答案 0 :(得分:5)
你通常会有像
这样的MainViewModelclass MainViewModel
{
public ReservationListViewModel ReservationListViewModel { get; set; }
public ReservationDetailViewModel ReservationDetailViewModel { get; set; }
}
并将在您的XAML中使用它
<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
<local:ReservationListView DataContext="{Binding ReservationListViewModel}"/>
<local:ReservationDetailView DataContext="{Binding ReservationDetailViewModel}"/>
您的UserControls不需要任何带参数的构造函数。