我使用devexpress hybrid wpf scaffolding向导生成一个完整的MVVM
应用程序包含集合和单个对象视图的视图。
现在我正在努力弄清楚当从集合视图中双击时如何弹出一些单个对象视图,作为一个metroUI对话框而不是一个带有后退按钮的框架。
答案 0 :(得分:1)
我建议您使用IDialogSerivice及其WinUIDialogService实施来完成此任务。
由于您使用的是scaffolding,因此您应该进入收藏视图
(YouEntityCollectionView.xaml
)并进入Behaviors
部分:
<dxmvvm:Interaction.Behaviors>
<dxwui:WinUIMessageBoxService/>
<dxmvvm:EventToCommand Command="{Binding OnLoadedCommand}" />
<WindowedDocumentUIService YieldToParent="True"/>
</dxmvvm:Interaction.Behaviors>
然后将您的服务添加到此部分:
<dxmvvm:Interaction.Behaviors>
<dxwui:WinUIMessageBoxService/>
<dxmvvm:EventToCommand Command="{Binding OnLoadedCommand}" />
<dxwui:WinUIDialogService />
</dxmvvm:Interaction.Behaviors>
之后,您应该将IDocumentManagerService
替换为IDialogService
代码中的CollectionViewModel
。它可能如下所示:
// Edit:
//DocumentManagerService.ShowExistingEntityDocument<TEntity, TPrimaryKey>(this, primaryKey);
this.GetService<IDialogService>().ShowDialog(MessageButton.OKCancel, null, typeof(TEntity).Name + "View", primaryKey, this);
// New:
//DocumentManagerService.ShowNewEntityDocument(this, newEntityInitializer);
this.GetService<IDialogService>().ShowDialog(MessageButton.OKCancel, null, typeof(TEntity).Name + "View", newEntityInitializer, this);