0

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

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

这是 WPF 的正确方法吗?我应该做其他事情InteractionRequest吗?
我通常做 Web 应用程序,所以 WPF 对我来说有点新。

任何帮助将不胜感激。

谢谢!

4

2 回答 2

2

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

对于必须在整个应用程序中显示且具有相同外观和感觉的常见对话框,对话服务更适合。例如,OpenFileDialog、颜色选择器、打印、错误消息等。

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

于 2012-10-31T14:22:21.003 回答
0

我只是使用对话服务来完成这种工作。

在您的视图模型中,您只需调用

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

就这样 :)

编辑:

您可以根据需要设置 UserControl 的样式

<DataTemplate DataType="{x:Type local:DetailViewModel}" >
    <view:DetailsView/>
</DataTemplate>
于 2012-10-30T13:32:24.173 回答