1

有没有使用 MVVM 模式显示对话框窗口、打开和关闭它们以及从中检索数据的标准方法?

我看过这个:http ://www.daedtech.com/mvvm-and-dialogs

我想用于显示特殊的对话框(视图/视图模型)。

如何处理 MVVM 中的多个窗口和对话框?

4

2 回答 2

0

这就是我在 mvvm 中使用对话框时所做的:)

var result = this.uiDialogService.ShowDialog("Dialogwindow title goes here", dialogwindowVM);
于 2013-03-17T14:42:38.397 回答
0

我见过的这种情况的最佳解决方案是PRISM 的交互请求(参见“使用交互请求对象”标题)。它是用于打开对话框的最 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 在这里

于 2013-03-17T14:58:02.293 回答