gpt4 book ai didi

WPF MVVM 对话框示例

转载 作者:行者123 更新时间:2023-12-03 09:57:39 25 4
gpt4 key购买 nike

有没有人有任何使用 MVVM (Prism) 显示窗口对话框的例子? - 例如,执行命令时的配置设置窗口。

我见过的所有示例都使用了很好的中介模式,但它们也都引用了 View 模型中的 View ,这并不理想(我们使用的是 DataTemplates)

谢谢

最佳答案

我会使用服务来显示对话框。该服务还可以将 View 与 View 模型链接起来。

public interface IDialogService {
void RegisterView<TView, TViewModel>() where TViewModel:IDialogViewModel;
bool? ShowDialog(IDialogViewModel viewModel);
}

public interface IDialogViewModel {
bool CanClose();
void Close();
}
RegisterView只是将 View 类型与 ViewModel 类型链接起来。您可以在模块初始化中设置这些链接。这比试图让模块在应用程序的顶层注册数据模板更简单。
ShowDialog显示要显示的 ViewModel。就像 Window.ShowDialog 一样,它返回 true、false 和 null 来关闭。方法。该实现只是创建了一个 TView 类型的新 View 。从您的容器中,将其连接到提供的 ViewModel 并显示它。
IDialogViewModel为 ViewModel 提供一种机制来进行验证并取消对话框的关闭。

我有一个标准的对话窗口,里面有一个内容控件。当 ShowDialog被称为它创建一个新的标准对话框,将 View 添加到内容控件,连接 ViewModel 并显示它。标准对话框已经有 [OK] 和 [Cancel] 按钮,它们具有适当的逻辑,可以从 IDialogViewModel 调用正确的方法。 .

关于WPF MVVM 对话框示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1667888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com