【发布时间】:2011-02-26 12:49:34
【问题描述】:
所以我有一个可编辑的 ViewModel,我不希望它只能通过 Dialog 窗口进行编辑。
通常 ViewModels 视图只显示数据,但您可以按下 Edit 按钮,通过调用 window.showDialog() 打开一个新的 Xaml 窗口。该窗口接受 viewModel 作为 DataContext,将其属性公开为可编辑,并将 Save 和 Cancel 命令绑定到按钮。
一切正常,但我遇到了一些问题。
首先保存命令有效,但它不会关闭对话框。其次,它会破坏 MVVM,因为 VM 必须知道 EditDialog 视图才能创建它。
当我单击 X 关闭按钮时也会发生什么。我知道 Dialog 通常会返回 false 作为 DialogResult 但这里我不处理结果。
有没有人使用 MVVM 做过类似但优雅的事情?
编辑
我还注意到,如果我使用 .ShowDialog,即使公开为 TextBox,我也无法编辑任何内容。这是因为模态对话框应该如何工作吗?
【问题讨论】:
标签: wpf xaml mvvm dialog modal-dialog