Wpf 使用Prism打开对话框

Wpf 使用Prism打开对话框,wpf,mvvm,prism,Wpf,Mvvm,Prism,我目前正在为WPF应用程序使用Prism,我正在使用Prism对话框搜索一些东西 我找到的方向是“InteractionRequestTrigger”,这里有一些例子 我找到了如何打开一个简单的弹出窗口和一个自定义弹出窗口,但有几件事我没有找到: 是否有办法使用此交互请求打开OpenFileDialog或SaveFileDialog 对于自定义控件,我想使用DevExpress的窗口,在哪里/如何指定?此外,此窗口的选项应该在哪里(如宽度/高度、窗口样式,如果可调整大小,…) 是否有办法为每个弹

我目前正在为WPF应用程序使用Prism,我正在使用Prism对话框搜索一些东西

我找到的方向是“InteractionRequestTrigger”,这里有一些例子

我找到了如何打开一个简单的弹出窗口和一个自定义弹出窗口,但有几件事我没有找到:

  • 是否有办法使用此交互请求打开
    OpenFileDialog
    SaveFileDialog
  • 对于自定义控件,我想使用DevExpress的
    窗口
    ,在哪里/如何指定?此外,此窗口的选项应该在哪里(如宽度/高度、窗口样式,如果可调整大小,…)
  • 是否有办法为每个弹出窗口创建一个ViewModel?因为我肯定会在这个弹出窗口中绑定命令和很多其他东西
  • 当我们进行确认/通知时,它似乎没有使用MessageBox,但实际上是一个窗口?有没有办法使用MessageBox(与系统保持一致)

  • 就我个人而言,我不太喜欢WPF的内置弹出窗口,所以通常使用自定义用户控件。如果您有兴趣为#3做类似的事情,可以找到它的代码。对于α1,我通常会考虑<代码> OpenFieldActudio和<代码> SaveFileDialog < /代码>应用程序的视图层的一部分,因此通常在视图后面的代码中实现。对于#2/4,我几乎从不在WPF中使用多个窗口,通常建议不要使用。除了“不要这样做”之外,我不确定我还能提供什么建议:)对于#3,请看它实际上很简单,只需在弹出视图中使用
    ViewModelLocator.AutoWireViewModel=“True”
    。@Haukinger我明白了,但有没有办法不复制通知和ViewModel中的每个字段?理想情况下,我希望能够创建ViewModel,将其交给视图,然后在其业务完成后,检索更新的VM。@Rachel感谢您提供的链接,但对于基本对话框,我们使用DevXPress,因此我们不必创建全新的东西。对于#1:好的,但此操作必须从我的ViewModel中的命令触发,它不知道背后的代码。对于2/4:我们有一些“选项”或属性可通过上下文菜单编辑,或者一些向导,我们在这里没有选择。在通知中,您只需要传递到弹出窗口或从弹出窗口返回的内容。你可以将一个模型实例(包含你需要的所有字段)放在那里,并在弹出窗口的视图模型中公开它。就个人而言,我不太喜欢WPF的内置弹出窗口,所以通常使用自定义用户控件。如果您有兴趣为#3做类似的事情,可以找到它的代码。对于α1,我通常会考虑<代码> OpenFieldActudio和<代码> SaveFileDialog < /代码>应用程序的视图层的一部分,因此通常在视图后面的代码中实现。对于#2/4,我几乎从不在WPF中使用多个窗口,通常建议不要使用。除了“不要这样做”之外,我不确定我还能提供什么建议:)对于#3,请看它实际上很简单,只需在弹出视图中使用
    ViewModelLocator.AutoWireViewModel=“True”
    。@Haukinger我明白了,但有没有办法不复制通知和ViewModel中的每个字段?理想情况下,我希望能够创建ViewModel,将其交给视图,然后在其业务完成后,检索更新的VM。@Rachel感谢您提供的链接,但对于基本对话框,我们使用DevXPress,因此我们不必创建全新的东西。对于#1:好的,但此操作必须从我的ViewModel中的命令触发,它不知道背后的代码。对于2/4:我们有一些“选项”或属性可通过上下文菜单编辑,或者一些向导,我们在这里没有选择。在通知中,您只需要传递到弹出窗口或从弹出窗口返回的内容。您可以始终将模型实例(包含所需的所有字段)放在其中,并在弹出窗口的视图模型中公开它。