是否有使用MVVM模式显示对话框窗口,打开和关闭它们以及从中检索数据的标准方法?
我见过这个:http://www.daedtech.com/mvvm-and-dialogs
我想用于显示特殊对话框(View / ViewModel)。
如何在MVVM中处理多个窗口和对话框?
答案 0 :(得分:0)
thats我在mvvm中使用对话框时的操作:)
var result = this.uiDialogService.ShowDialog("Dialogwindow title goes here", dialogwindowVM);
答案 1 :(得分:0)
我见过的这种情况的最佳解决方案是PRISM's Interaction Request(参见“使用交互请求对象”标题)。它是用于打开对话框的最MVVM友好抽象。交互请求是视图模型,与控件和视图元素分开,可以绑定到特定视图。
样品。 查看型号:
public IInteractionRequest ConfirmCancelInteractionRequest
{
get
{
return this.confirmCancelInteractionRequest;
}
}
this.confirmCancelInteractionRequest.Raise(
new Confirmation("Are you sure you wish to cancel?"),
confirmation =>
{
if (confirmation.Confirmed)
{
this.NavigateToQuestionnaireList();
}
});
查看:
<i:Interaction.Triggers>
<prism:InteractionRequestTrigger
SourceObject="{Binding ConfirmCancelInteractionRequest}">
<prism:PopupChildWindowAction
ContentTemplate="{StaticResource ConfirmWindowTemplate}"/>
</prism:InteractionRequestTrigger>
</i:Interaction.Triggers>
<UserControl.Resources>
<DataTemplate x:Key="ConfirmWindowTemplate">
<Grid MinWidth="250" MinHeight="100">
<TextBlock TextWrapping="Wrap" Grid.Row="0" Text="{Binding}"/>
</Grid>
</DataTemplate>
</UserControl.Resources>
Wpf PRISM是here