如何实现类似行为的模态

时间:2010-07-09 23:27:40

标签: wpf mvvm modal-dialog

我目前正处于无法找到解决方案的情况:

在WPF应用程序中,我在tabcontrol中打开了几个用户控件。因此,每个tabitem都会加载不同的东西(例如客户,供应商,商品,仓库......)。

在客户tabitem中,我想删除所选客户,因此我想要弹出一个确认信息“你想删除客户吗?”这是MODAL到 THIS tabitem,让用户可以选择另一个tabitem,例如。供应商。用户可以选择供应商tabitem,在那里她可以做任何她想做的事情,但是回到客户的标签,她仍然可以看到对话框。

如何使用MVVM技术实现这一点?

提前致谢

1 个答案:

答案 0 :(得分:2)

使“模态窗口”成为UserControl。将其可见性与ViewModel中的属性相关联。

然后,您可以将UserControl与选项卡内容一起放在网格中,但具有更高的Z-index。当在VM中将属性交换为true时,“模态窗口”UserControl将变为可见,并完全覆盖选项卡内容。这可以防止该选项卡中的任何操作,而不会阻止选项卡切换。

这是BTW,与他所有对话的Josh Smith used in Advanced MVVM类似的技术。 (有一些明显的差异,因为他没有处理标签项等等......但核心概念是相同的。)