继续我之前的问题“更新/使用来自另一个 ViewModel 的变量”,我决定开始使用 Caliburn Micro 作为框架。
问题是,根据本指南,不应该有一个“空”的构造函数接受 0 个参数。
好吧,好吧。
现在的问题是我现在不知道如何将 ViewModel 绑定到 View。在切换到这个框架之前,我使用 App.xaml 和静态资源作为数据上下文,但我不能再这样做了,因为没有空的构造函数。
我该如何解决这个问题?我一直在尝试解决它一个小时,但我一无所获。
一些代码:
[Export(typeof(ViewModelBase))]
public class ViewModelBase : INotifyPropertyChanged, IHandle<updateEvent>
{
private Class _studclass;
public AddStudentViewModel NewModel { get; private set; }
public Class StudentClass
{
get { return _studclass; }
set
{
_studclass = value;
NotifyPropertyChanged("StudentClass");
}
}
[ImportingConstructor]
public ViewModelBase(AddStudentViewModel newModel, IEventAggregator events)
{
StudentClass = new Class();
NewModel = newModel;
Student asaf = new Student();
asaf.Name = "Asaf";
StudentClass.StudentList.Add(asaf);
events.Subscribe(this);
}
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(string PropertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
}
public void Handle(updateEvent msg)
{
StudentClass.StudentList.Add(msg.Student);
}
}
那是“主要”视图模型。但是,我无法将其绑定到视图,因此数据不会显示...我什至尝试设置假数据...效果不如您可能猜到的那么好。