【发布时间】:2015-12-16 05:54:13
【问题描述】:
我对 WPF 完全陌生。我正在使用 DevExpress mvvm 框架。我想从视图模型中显示一个窗口。
我使用的代码是
public void NewEntity()
{
var factory = ViewModelSource.Factory((RemoteTable<AddressLocatorView> aRemoteTable) => new CreateEntityWizardViewModel(aRemoteTable));
CreateEntityWizardViewModel aVM = factory(fDataModule.DataAdapter.GetTable<AddressLocatorView>());
DialogService.ShowDialog(dialogCommands: null, title: "New Entity Wizard", viewModel: aVM);
}
这将打开一个表单并设置视图模型。
虽然,在表单的构造函数中,我有
public CreateEntityWizard()
{
InitializeComponent();
}
这反过来又调用 EntityWizardViewModel 的公共无参数构造。 EntityWizardViewModel 被创建了两次,一次由工厂方法创建,第二次由 InitializeComponent() 创建,我相信它是通过 XAML 完成的:
DataContext="{dxmvvm:ViewModelSource Type={x:Type ViewModels:CreateEntityWizardViewModel}}"
使用 DialogService 将 ViewModel 传递给表单的方法是什么?
谢谢
【问题讨论】:
标签: c# wpf xaml mvvm devexpress