簡體   English   中英

如何在MVVM中處理多個窗口和對話框?

[英]How to handle multiple windows and dialogs in MVVM?

是否有使用MVVM模式顯示對話框窗口,打開和關閉對話框窗口以及從中檢索數據的標准方法?

我已經看到了: http : //www.daedtech.com/mvvm-and-dialogs

我想用於顯示特殊對話框(View / ViewModel)。

如何在MVVM中處理多個窗口和對話框?

那就是我在mvvm中使用對話框時所做的事情:)

var result = this.uiDialogService.ShowDialog("Dialogwindow title goes here", dialogwindowVM);

我所見過的針對此情況的最佳解決方案是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在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM