WPF MVVM取消窗口关闭

2024-01-25

我是 WPF 和 MVVM 新手。我想最小化窗口而不是关闭它。换句话说,我想取消Closing窗口事件并最小化该窗口。

我应该如何以 MVVM 方式进行操作?

如果相关的话,最后我会设置ShowInTaskbar to false并使用WinForms托盘组件。


对 MVVM 的常见误解是视图中永远不可能存在代码隐藏。很显然这不是真的。

MVVM 的目标是minimize代码隐藏中的代码,但对于直接与视图本身交互的内容(例如 Windows 事件),放入一些隐藏代码是可以接受的。代码隐藏将处理取消,并可能执行最小化,或调用 ViewModel 中的命令,或其他类似的事情。

否则,您将不得不想出一个复杂的系统来处理 ViewModel 中的事件,这通过让 ViewModel 引用 View(而不是相反)来打破 MVVM 模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF MVVM取消窗口关闭 的相关文章

随机推荐

  • 当字体不支持符号时如何将版权、商标、服务标记等插入到WPF文本框中

    我们有一个 WPF 应用程序 可以显示包含各种公司符号的文本 例如商标 注册商标 版权和服务标志 该数据库的一些字段包含标准公司符号 最初 数据标记如下 Example Corp TM or Example Plan SM 我们可以轻松地将
  • 编辑 Ionic 选项卡图标样式

    我正在开发一个 Ionic 项目 其中主要导航方法是选项卡 中心选项卡需要突出 所以我在我的 scss 中创建了一个样式 如下所示 i icon ion ios camera height inherit border radius 100
  • 将 CSV 导入 MySQL 表返回错误 #1148

    我尝试使用 DirectAdmin 导入 但在不使用 LOAD DATA 的情况下选择 CSV 时 我收到错误 第 1 行 CSV 输入中的字段计数无效 当我尝试使用 LOAD DATA 时 出现以下错误 1148 此 MySQL 版本不允
  • 将项目从 Delphi 7 迁移到 Delphi XE 有多难?

    我们公司有一个软件已经开发了10多年 所以里面有一些非常过时的东西 它仍然很实用 什么都有 但我看到 Delphi XE 上的新功能 它让我想要切换 问题是源代码本身有超过 300mb 的 pas 文件 包含组件等总共 1GB 我们使用自定
  • F# If/Then 中的推断类型

    如果我有以下功能 let myFunc x y if y 0 then 1 x 我收到错误 Program fs 58 17 error FS0001 This expression was expected to have type un
  • Powershell 连接到 VSO

    我正在尝试使用 Powershell 连接到 VSO 这是我的代码 tfsServer New Object System Uri the server is here creds System Net CredentialCache De
  • Python - calendar.timegm() 与 time.mktime()

    我似乎很难理解这个问题 有什么区别calendar timegm and time mktime 说我有一个datetime datetime如果没有附加 tzinfo 两者不应该给出相同的输出吗 它们不都给出纪元和作为参数传递的日期之间的
  • C++:固定但运行时定义长度数组的向量

    我知道我可以使用 std vector
  • 使用 Linq 从数据表中获取不同的行(多列不同)

    我试图区分多个列并从数据表中获取数据行 但出现错误 Dim query As IEnumerable Of DataRow From row As DataRow In SourceTable AsEnumerable Select row
  • C# 和元数据文件错误

    我使用 MSDN 上的教程创建了自己的小型 C 编译器 但它无法正常工作 我遇到一些错误 然后修复它们 然后我遇到新的 不同的错误 然后修复它们 等等 最新的错误真的让我很困惑 Line number 0 Error number CS00
  • CSS 覆盖规则和特殊性

    我经常对 CSS 覆盖规则感到困惑 一般来说 我意识到更具体的样式表会覆盖不太具体的样式表 并且特异性取决于指定的选择器数量 还有 important关键字 也发挥着作用 因此 这是一个简单的示例 我有一个包含两个表格单元格的表格 表格本身
  • sklearn的MLP Predict_proba函数内部是如何工作的?

    我想了解如何sklearn的 MLP 分类器 https scikit learn org stable modules generated sklearn neural network MLPClassifier html检索其结果pre
  • 将 png 图像转换为有损 avif

    我尝试压缩大约 1MB 的 png 以获得更小的图像 当我使用以下命令将图像压缩为 jpeg 时 for i in card png do convert resize 445x625 background white flatten i
  • Metro 应用程序中的 ListView 没有垂直滚动条

    我对 Windows Store 又名 Metro 应用程序 XAML 没有经验 所以也许我忽略了一些简单的东西 但根据书籍和示例 垂直滚动条是 ListView 控件的自然组成部分 除非明确禁用 否则会在出现时显示是 ListView 中
  • 获取画布中两点之间的距离

    我有画布绘图选项卡 并希望 lineWidth 基于最后两次鼠标移动坐标更新之间的距离 我将自己将距离转换为宽度 我只需要知道如何获得这些点之间的距离 我已经有了这些点的坐标 你可以用毕达哥拉斯定理来做 如果有两个点 x1 y1 和 x2
  • Python 和 Rust 之间零拷贝共享 Polars 数据帧的示例?

    我有一个Python函数 例如 def add data input df 对 input df Polars 数据框 进行一些操作 例如用新值填充某些列 我想在 Rust 函数中使用这个函数 input df 可能有几十兆字节大 所以我想
  • 使用 process.start 打开文本文件

    在计算皮尔逊相关并将结果写入文本文件后 我一直试图从系统中打开一个文本文件 但到目前为止 由于某种原因 代码没有打开任何记事本文件 我尝试打开其他文件 它们可以工作很好 但 txt 文件没有专门打开 甚至 docx 文件也使用相同的代码打开
  • 允许递归构造函数可能有什么好处(如果有)?

    在 Java 中 构造函数不能是递归的 编译时错误 递归构造函数调用 假设我们没有这个限制 要记住的事情 构造函数的返回类型为 void 由于它是一个 void 方法 因此您无法利用递归的完整功能 构造函数可以使用 this 调用自身 或任
  • FileChannel#force 和缓冲

    我现在想澄清一下 并在 FileOutputStream 和 FileChannel 之间画出一些相似之处 所以首先 似乎使用标准 Java io 写入文件的最有效方法是使用用 BufferedOutputStream 包装的 FileOu
  • WPF MVVM取消窗口关闭

    我是 WPF 和 MVVM 新手 我想最小化窗口而不是关闭它 换句话说 我想取消Closing窗口事件并最小化该窗口 我应该如何以 MVVM 方式进行操作 如果相关的话 最后我会设置ShowInTaskbar to false并使用WinF