gpt4 book ai didi

C#、WPF、MVVM、为消息对话框/确认对话框创建 View 模型?

转载 作者:行者123 更新时间:2023-12-03 10:35:28 24 4
gpt4 key购买 nike

除了 Visual Studio 中的简单 WPF 应用程序项目外,我没有使用任何其他东西。我已经实现了一个 mvvm 应用程序。

我想显示用户所做的内容更改列表。我有一个主窗口 View 模型,它目前只是构建一个带有更改的字符串。我有可以重用的对象来显示它们的属性(内容)。

目前,我使用 MessageBoxResult 来显示一个非常长的字符串以及更改。这是一个糟糕的设计(我知道),但我无法真正找到常规 wpf 项目有哪些类可以让我实现我想要的答案。

我知道有一个我可以使用的弹出类。在实践中,哪个更好——对话框的另一个 View 模型,还是弹出窗口?

任何人都可以提供两种方法之一的简单示例吗?

预先感谢您的回复。

最佳答案

我过去所做的是有一个简单的Border控制,并在 TextBlock 内部和任何Button我需要的控件。我绑定(bind)TextBlock.Text公开string名为“MessageBoxMessage”的属性调用 OnPropertyChanged() .我绑定(bind)Command每个 Button单独公开ICommand它指定单击按钮时要在 View 模型中执行的操作。然后我绑定(bind) Border 的可见性控件 - 包含我提到的所有其他控件 - 到 Visibility 属性。

当我想显示一个对话框时,我将 MessageBoxMessage 设置为我想显示的消息,确保命令设置正确,然后设置 VisibilityBorderVisibility.Visible .这显示了框(边框)、消息和按钮。

您甚至可以在您设置为同时可见的边框下方(在表单的其余部分上方)实现一个半透明的矩形。这将为您提供漂亮的“表单变暗”效果,并阻止单击普通表单控件。一般注意事项 - 要使其正常工作,这些控件需要位于 XAML 的最底部,因为同一级别的控件之间的 z-index 是从它们在 XAML 中的位置推断出来的 - 代码中的较低层是顶层的形式。

如果您对实现此功能有任何疑问,请告诉我,如果它听起来像您正在寻找的东西。

关于C#、WPF、MVVM、为消息对话框/确认对话框创建 View 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31600552/

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