MVVMパターンを使用して、ダイアログウィンドウを表示し、それらを開閉し、それらからデータを取得するための標準的な方法はありますか?
私はこれを見ました: http://www.daedtech.com/mvvm-and-dialogs
特別な(View/ViewModel)のダイアログを表示するために使用したい。
MVVMで複数のウィンドウとダイアログを処理するには?
MVVMパターンを使用して、ダイアログウィンドウを表示し、それらを開閉し、それらからデータを取得するための標準的な方法はありますか?
私はこれを見ました: http://www.daedtech.com/mvvm-and-dialogs
特別な(View/ViewModel)のダイアログを表示するために使用したい。
MVVMで複数のウィンドウとダイアログを処理するには?
mvvmでダイアログを操作するときに私がすること:)
var result = this.uiDialogService.ShowDialog("Dialogwindow title goes here", dialogwindowVM);
私が今までに見たこのケースの最善の解決策は、PRISM の 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はこちら