带有详细信息的PRISM 4 + MVVM + WPF + InteractionRequest for Dialogs

时间:2012-10-30 13:21:48

标签: c# wpf mvvm prism prism-4

我目前正在开发一个在WPF 4应用程序中使用PRISM 4 + MVVM的项目。
我一直在阅读InteractionRequest,似乎没有关于如何实现它的信息这样对话框就是一个可设置样式的用户控件,其中包含textbox和其他控件。
我找到的所有示例都只是带有文本的对话框窗口。

我希望做的是listview当用户选择一个项目时,它会打开一个对话框,在那里他们可以编辑详细信息并保存或取消。

这是WPF的正确方法吗?我应该做除InteractionRequest以外的其他事情吗?我一般都是网络应用程序,所以WPF对我来说有点新鲜。

非常感谢任何协助。

谢谢!

2 个答案:

答案 0 :(得分:2)

我正在使用对话服务和交互请求。

对于必须在整个应用程序中显示的具有相同外观的常见对话框,对话框服务更好。例如,OpenFileDialog,Color Choosers,Printing,Error Messages等

交互请求对于特定于某个视图的简单用户交互可能更好。例如,让我们假设一个视图有一个绑定到视图模型中的命令的按钮。该命令允许用户在选项A,B,C之间进行选择,然后使用该选项执行某些功能。 ViewModel可以启动它希望用户从A,B,C中选择的InteractionRequest。 View可以处理该事件并提供一个简单的模板,该模板描述了如何向用户显示这些选项A,B,C。因此,您保持UI和&的分离。商业逻辑。在这种情况下,从View代码中实现此自定义交互似乎更好,因为它对此视图来说很简单且具体。

答案 1 :(得分:0)

我只是使用dialog service进行此类工作。

在你的viewmodel中你只需要调用

  var result = this.uiDialogService.ShowDialog("Dialogwindow title goes here, eg Edit Details", detailViewmodel);

多数民众赞成:)

编辑:

您可以按照自己想要的方式设置UserControl的样式

<DataTemplate DataType="{x:Type local:DetailViewModel}" >
    <view:DetailsView/>
</DataTemplate>
相关问题