MVVM对话框以及从哪里调用它们?

时间:2017-01-30 17:43:10

标签: c# wpf mvvm modal-dialog

希望有人可以帮助我进一步理解Dialogs以及如何将它们应用到我正在开发的应用程序中(用于学习目的)。提前道歉 - 我对很多这些不同的技术没有很好的工作知识

我的viewmodel结构的基本布局如下面的Pic所示(带有相应的视图(UserControls) ViewModel Layout

GroupView模型中,每个标签都设置为餐厅的食物组和运行时加载的项目

 <ItemsControl Margin="10" ItemsSource="{Binding Plus}" >
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel Orientation="Horizontal" MaxWidth="410" />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Button Margin="5" Width="80" Height="40"
                                Command="{Binding DataContext.AddPluCommand, RelativeSource={RelativeSource AncestorType=core:UserControlViewBase}}" CommandParameter="{Binding}">
                            <TextBlock Text="{Binding PluContent}" TextWrapping="Wrap" />
                        </Button>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>

Button click上(通过命令:AddPluCommand)我想trigger准备说明对话框(或模态视图)

示例:

按下咖啡 - 准备说明将使用3个按钮加载视图:

  • 热牛奶
  • 冷牛奶
  • 黑色

到目前为止,所有尝试都没有产生任何结果(交互触发器,对话服务,叠加模态视图)。最可能的原因是我将代码置于错误的ViewModels(至少我认为这是原因)。

问题:

是否可以加载具有自己的ViewModel的对话框(如上所述)。只有我见过的样本处理非常简单的文本类型消息?

哪个Viewmodel应该拨打对话?

提前致谢

1 个答案:

答案 0 :(得分:0)

我发现很难用WPF构建模态对话框。 现在我使用Mahapps Metro SimpleChildWindows,您可以使用Nugets下载它。

这样,您可以使用自己的ViewModel构建自定义模式视图(如果需要)。 看看我的问题(和我的答案) =&GT; SimpleChildWindows binded to View Model