您是否看到了一种更好的方法,我可以从Controller / ViewModel调用/ contstruct一个Dialog返回数据,并将DocumentViewModel设置为Dialog的DataContext?
问题是我无法在DocumentDetailWindow及其所属的UserControl中使用View第一种方法,因为我无法在 XAML 中将模型设置为DocumentViewModel的文档属性!
您如何解决这种情况?使Dialog正确绑定,调用对话框并将数据从它返回到LessonPlannerController,以便新文档可以保存在数据库中并添加到文档的绑定ObservableCollection中,以便再用一个Document刷新GUI。
LessonPlannerController /视图模型:
private void OnAddDocument()
{
DocumentDetailWindowaddDocumentWindow = new DocumentDetailWindow();
DocumentViewModeldocumentViewModel = new DocumentViewModel();
documentViewModel.Document = new Document();
documentViewModel.Repository = new LessonPlannerRepository();
documentViewModel.SaveDocumentDelegate += new Action<Document>(OnSaveDocument);
addDocumentWindow.DataContext = documentViewModel;
addDocumentWindow.ShowDialog();
}
更新:
我甚至想过不做这个=&gt; documentViewModel.Document = new Document(); 因为当我可以这样做时,为什么我需要ViewModel中的模型:
IN REALITY 这些属性有NotifyPropertyChange ... public string DocumentName {get; set;} public string Keywords {get; set;}
然后我可以在DocumentViewModel中创建一个具有上述属性的Document实例,当执行Save命令然后通过Callback将Document传递给LessonPlannerControl等...当你必须订阅时,看起来View首先不起作用你的事件到一个方法。只有ViewModel才能首先运行。
你怎么看?我不应该使用ocumentViewModel.Document = new Document();并在DocumentViewModel中创建这两个属性。嗯...但是为什么要重新创建它们是否已经在文档模型中?...
答案 0 :(得分:0)